Хорошо, я создаю PoC для мобильного приложения, которое должно иметь автономные возможности, и у меня есть несколько вопросов о том, правильно ли я разрабатываю приложение, а также какое поведение я получу из манифеста кэша.Как работает автономный манифест/функциональность HTML5 с ASP.NET MVC 4?
Этот вопрос касается включения URL-адресов действий контроллера как в разделе CACHE манифеста, так и в разделе NETWORK.
Я считаю, что я читал некоторые противоречащие друг другу информацию об этом. На нескольких сайтах, которые я прочитал, включение дикой карты в раздел NETWORK заставит браузер попытаться извлечь все с сервера, когда он находится в сети, и просто использовать все, что кэшируется, если нет подключения к Интернету.
Однако сегодня утром я прочитал следующее на Dive into HTML5 : Let's take this offline:
линия отмечена NETWORK: это начало раздела «онлайн» белый список. Ресурсы в этом разделе никогда не кэшируются и являются недоступны в автономном режиме. (Попытка загрузить их в автономном режиме приведет к ошибке.)
Итак, какая информация верна? Как будет выглядеть приложение, если бы я добавил URL-адрес для действия контроллера в разделах CACHE и NETWORK?
У меня есть очень простая и небольшая PoC работает до сих пор, и это то, что я заметил по этому вопросу:
У меня есть действия контроллера, который просто генерирует случайные числа 4 и устанавливает их на ViewBag и View будут отображать их на UL.
Я не использую кэширование вывода вообще. Единственное кэширование происходит из файла манифеста.
Прежде чем добавлять атрибут манифеста в свой тег html моего Layout.cshtml, каждый раз, когда я запрашивал представление, я получал разные случайные числа каждый раз, а контрольная точка, установленная на действие контроллера, была бы удалена.
При первом обращении к URL/представлению после добавления атрибута манифеста точка останова на контроллере попадает 3 раза (в отличие от всего 1 раньше). Это уже странно, и я опубликую отдельный вопрос об этом, я просто пишу его здесь для справки.
После того, как манифест и ресурсы кэшированы (проверено, посмотрев окно консоли в инструментах Chrome Dev), каждый раз, когда я запрашиваю View/URL, я получаю кешированную версию, и точка останова никогда не ударяется.
Такое поведение заставляет меня верить, что все, что находится в разделе CACHE, отменяют или игнорировать все, что находится на участке сети, но, как я сказал (и почему я спрашиваю здесь), потому что я новый для работы с этим, и я не уверен, что так оно и должно работать, или если я что-то упустил или не использовал его правильно.
Любая помощь очень ценится
Вот соответствующий раздел кэша.манифест:
CACHE MANIFEST
#V1.0
CACHE:
/
/Content/Site.css
/Content/themes/base/jquery-ui.css
NETWORK:
*
/
FALLBACK:
Действительно хороший вопрос и ответ. Завтра я собираюсь сделать POC. Я надеюсь, что предпочтительный режим онлайн отлично работает с архитектурой ASP.NET MVC. –