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