Как Веб-Приложение Может Незаметно Для Вас Загрузить 2 Гб Кеша

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

Один из этих экспериментов касается квоты максимального размера кэша.

Две недели назад я писал о создании и обслуживании манифеста приложения с использованием ASP.NET MVC. При этом используется тот же код, но в кеш добавляются сотни PDF-файлов размером 7 МБ.

   

public ActionResult Manifest() { var cacheResources = new List<string>(); var n = 300; // Play with this number for (var i = 0; i < n; i++) cacheResources.Add("Content/" + Url.Content("book.pdf?" + i)); var manifestResult = new ManifestResult("1") { NetworkResources = new string[] { "*" }, CacheResources = cacheResources }; return manifestResult; }

Сначала я попытался добавить в кеш 1000 PDF-файлов, но браузер выдал ошибку: Chrome сообщил о превышении квоты.

Уменьшив количество файлов в несколько раз, я нашел этот предел.

Нам удалось добавить в кеш 300 PDF-файлов, не получив при этом ошибки о превышении квоты.

Глядя в хром://appcache-internals/ , я могу убедиться, что размер кэша для одного веб-приложения составляет 2,2 гигабайта.



Как веб-приложение может незаметно для вас загрузить 2 ГБ кеша

Как пользователь, я понятия не имел, что веб-сайт, открытый в браузере, загружает в фоновом режиме подозрительный объем данных.

Ни Chrome (17.0.963.83), ни любой другой известный мне настольный браузер об этом не предупреждает. Хотя мне кажется, что загрузка и хранение такого большого количества информации на моем компьютере должна производиться с моего разрешения.

Что еще я заметил, так это то, что все остальные сайты после исчерпания квоты уже не могут ничего записать в кеш.

Я уверен, что такой подход «первый в очереди, первый пришёл» вызовет некоторое недовольство в будущем.

Чтобы решить эту проблему, вы можете использовать API applicationCache для отслеживания ошибок превышения квоты и предлагать пользователю сообщение с предложением открыть хром://appcache-internals/ и удалите кэши старых веб-приложений, чтобы освободить место для новых.

Это выглядит довольно неловко; не мог бы браузер сделать это более элегантным способом?

Как веб-приложение может незаметно для вас загрузить 2 ГБ кеша

Теги: #html5 #chrome #размер кэша #локальный кеш #разработка веб-сайтов #HTML

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.