Могут ли браузеры применять какой-либо лимит на количество данных, которые могут храниться в объектах JavaScript? Если да, есть ли способ определить этот предел?
Похоже, что по умолчанию Firefox не делает:
var data;
$("document").ready(function() {
data = [];
for(var i = 0; i < 100000000000; i++) {
data.push(Math.random());
}
});
Это продолжает потреблять все больше и больше памяти, пока моя система не закончится.
Поскольку мы не можем обнаружить доступную память, есть ли другой способ сказать, что мы приближаемся к этому пределу?
Обновление
Приложение, которое я разрабатываю, полагается на очень быстрое время отклика для использования (это основная точка продажи). К сожалению, он также имеет очень большой набор данных (больше, чем вписывается в память на более слабых клиентских машинах). Производительность может быть значительно улучшена за счет предварительной загрузки данных стратегически (угадайте, что будет нажата). Возврат к загрузке данных с сервера работает, когда догадки неверны, но поездка в оба конца не идеальна. Используя каждый бит памяти, я могу сделать приложение максимально возможным.
В настоящее время он позволяет пользователю "настроить" свои параметры производительности (максимальные настройки данных), но пользователи не хотят этого делать. Кроме того, поскольку это веб-приложение, я должен обрабатывать пользователей, настраивающих их для каждого компьютера (поскольку у мощного рабочего стола гораздо больше памяти, чем у старого iPhone). Это лучше, если он просто использует оптимальные настройки для того, что доступно в системах. Но слишком высокая догадка может вызвать проблемы и на клиентском компьютере.