Работает ли кэширование манифеста кеша HTML5 иначе, чем обычное кэширование браузера?

Хорошо, я создаю PoC для мобильного приложения ASP.NET MVC 4, которое должно иметь автономные возможности, и у меня есть несколько вопросов о том, правильно ли я разрабатываю приложение, а также какое поведение я получу из манифеста кэша.

Я работаю с PoC, но наблюдаю странное поведение рабочего действия контроллера сразу после добавления атрибута manifest в мой Layout.cshtml.

Перед добавлением атрибута каждый раз, когда я запрашивал этот URL-адрес, точка останова, которую я имел в действии контроллера, срабатывала только один раз каждый раз. После его добавления точка останова срабатывает 3 раза при первом запросе страницы (впервые), и она больше не срабатывает, пока я вручную не удалю локальный кешированный манифест.

Больше ничего не изменилось, поэтому я считаю, что этот тип автономного кэширования работает иначе, чем обычный способ работы кэша браузеров. Я думаю, что, поскольку страница, которую я посещаю, указана в манифесте, точка останова срабатывает в первый раз, потому что я запросил страницу, а затем во второй раз, потому что она указана в манифесте.

Это уже странно. Почему это?

Кроме того, почему он попадает в третий раз?

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

Кто-нибудь может объяснить, что происходит, пожалуйста? Спасибо.


person GR7    schedule 28.04.2013    source источник
comment
Все ли браузеры показывают такое поведение?   -  person ZippyV    schedule 29.04.2013
comment
Хороший вопрос ZippyV. Я только что перепроверил все это, и Chrome, похоже, дважды попадает в точку останова, а не три раза. Я также тестировал IE, и он действительно дважды попадает в точку останова.   -  person GR7    schedule 29.04.2013
comment
Я подтвердил, что он просто попал два раза.. и, учитывая, что URL-адрес действия указан в манифесте, возможно, что из-за этого он попал дважды. Один для запроса, который я делаю, а другой для манифеста... но подтверждение от кого-то более осведомленного в теме будет оценено.   -  person GR7    schedule 29.04.2013


Ответы (1)


Ну, никто не ответил, и я больше не мог воспроизвести точку останова, срабатывающую 3 раза, хотя я уверен, что это случалось несколько раз.

И да, кэширование appcache или html-манифеста работает иначе, чем обычное кэширование.

При первом посещении страницы, имеющей атрибут манифеста в html-теге, та же самая страница, указанная в манифесте, отправила запрос на сервер для той же страницы.

Я делаю ответ вики на случай, если кто-то захочет что-то добавить.

person Community    schedule 09.05.2013