Есть ли какой-нибудь метод для обработки нехватки памяти во время выполнения в JavaScript? - PullRequest
4 голосов
/ 20 декабря 2011

Если ваше веб-приложение должно работать на встроенных устройствах или устройствах с низким объемом памяти, есть ли в JavaScript средство для управления условиями нехватки памяти во время выполнения, чтобы вы могли использовать как можно больше памяти для кэширования данных, но иметь возможность надежной очистки таких кеш как требуется?

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

Пока ничего не нашел, но надеюсь, что что-то упустил.

Ответы [ 2 ]

3 голосов
/ 20 декабря 2011

Нет.Браузер не предоставляет статистику использования памяти JavaScript.

Если вы пытаетесь реализовать кэширование, вам, вероятно, лучше использовать кэш браузера (например, используя Expires: заголовки в ответах AJAX), а нечем пытаться реализовать свой собственный кеш в JS.

1 голос
/ 21 декабря 2011

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

Если вы используете телефонный разрыв (http://www.phonegap.com)), вы можете легко захватывать предупреждения памяти в собственном коде и отправлять их в javascript. Я делал это в нескольких ситуациях, когда было возможно очистить DOM и пересчитать его позже, если это необходимо.

...