В последние несколько дней я экспериментировал с автономный кэш веб-приложения HTML5 , запуск тестов и изучение поведения браузера в пограничных ситуациях.
Один из этих экспериментов касается квоты максимального размера кэша.
Две недели назад я писал о создании и обслуживании манифеста приложения с использованием ASP.NET MVC. При этом используется тот же код, но в кеш добавляются сотни PDF-файлов размером 7 МБ.
Сначала я попытался добавить в кеш 1000 PDF-файлов, но браузер выдал ошибку: Chrome сообщил о превышении квоты.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; }
Уменьшив количество файлов в несколько раз, я нашел этот предел.
Нам удалось добавить в кеш 300 PDF-файлов, не получив при этом ошибки о превышении квоты.
Глядя в хром://appcache-internals/ , я могу убедиться, что размер кэша для одного веб-приложения составляет 2,2 гигабайта.
Как пользователь, я понятия не имел, что веб-сайт, открытый в браузере, загружает в фоновом режиме подозрительный объем данных.
Ни Chrome (17.0.963.83), ни любой другой известный мне настольный браузер об этом не предупреждает. Хотя мне кажется, что загрузка и хранение такого большого количества информации на моем компьютере должна производиться с моего разрешения.
Что еще я заметил, так это то, что все остальные сайты после исчерпания квоты уже не могут ничего записать в кеш.
Я уверен, что такой подход «первый в очереди, первый пришёл» вызовет некоторое недовольство в будущем.
Чтобы решить эту проблему, вы можете использовать API applicationCache для отслеживания ошибок превышения квоты и предлагать пользователю сообщение с предложением открыть хром://appcache-internals/ и удалите кэши старых веб-приложений, чтобы освободить место для новых.
Это выглядит довольно неловко; не мог бы браузер сделать это более элегантным способом?
Теги: #html5 #chrome #размер кэша #локальный кеш #разработка веб-сайтов #HTML
-
Разочаровывающий Дизайн
19 Oct, 24 -
Реарвью Корпорация
19 Oct, 24 -
О Сжатии Видео — Введение
19 Oct, 24 -
Как Создать Собственное Мероприятие На Icamp
19 Oct, 24 -
Css И Сафари
19 Oct, 24 -
Состав Альянса Открытых Мобильных Телефонов
19 Oct, 24 -
Удобный «Пагинатор»
19 Oct, 24