jQuery или JavaScript для нахождения использования памяти страницы

Существует ли способ узнать, сколько памяти используется веб-страницей, или моим приложением jQuery?

Вот моя ситуация:

Я создаю данные тяжелое веб-приложение с помощью jQuery frontend и успокоительного бэкенда, который служит данным в JSON. Страница загружается однажды, и затем все происходит через ajax.

UI предоставляет пользователям способ создать несколько вкладок в UI, и каждая вкладка может содержать партии и много данных. Я рассматриваю ограничение количества вкладок, которые они могут создать, но думали, что будет хорошо только ограничить их, после того как использование памяти вышло за предел определенного порога.

На основе ответов я хотел бы сделать некоторый clarfications:

  • Я ищу решение во время выполнения (не только инструменты разработчика), так, чтобы мое приложение могло определить действия на основе использования памяти в браузере пользователя.
  • Подсчет элементов DOM или размера документа мог бы быть хорошей оценкой, но это могло быть довольно неточно, так как это не будет включать привязку события, данные (), плагины и другие структуры данных в оперативной памяти.
94
задан David Mulder 24 February 2013 в 09:28
поделиться

5 ответов

Я не знаю, каким образом можно было бы узнать, сколько памяти используется браузером, но вы могли бы использовать эвристику, основанную на количестве элементов на странице. Используя jQuery, вы можете сделать $ ('*'). Length , и он даст вам количество элементов DOM. Честно говоря, вероятно, проще просто провести тестирование юзабилити и предложить фиксированное количество вкладок для поддержки.

8
ответ дан 24 November 2019 в 06:08
поделиться

Если вы хотите просто посмотреть на тестирование, в Chrome есть способ через страницу разработчика отслеживать использование памяти, но не знаете, как это сделать в javascript напрямую.

3
ответ дан 24 November 2019 в 06:08
поделиться

Возможно, вы захотите, чтобы сервер отслеживал их пропускную способность для этого сеанса (сколько байтов данных им было отправлено). Когда они превышают лимит, вместо отправки данных через ajax сервер должен отправить код ошибки, который javascript будет использовать, чтобы сообщить пользователю, что он использовал слишком много данных.

0
ответ дан 24 November 2019 в 06:08
поделиться

Вы можете получить document.documentElement.innerHTML и проверить его длину. Это даст вам количество байтов, используемых вашей веб-страницей.

Это может работать не во всех браузерах. Таким образом, вы можете заключить все элементы тела в гигантский div и вызвать innerhtml для этого div. Что-то вроде

...

0
ответ дан 24 November 2019 в 06:08
поделиться

Используйте инструмент Chrome Heap Snapshot

Также есть инструмент Firebug под названием MemoryBug , но, похоже, он еще не очень развит.

4
ответ дан 24 November 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: