Сценарии файла манифеста ASP.NET не обновлены - PullRequest
3 голосов
/ 04 апреля 2011

Я использую MVC вместе с JS для создания приложения для IPad.Одно из ключевых требований - приложение должно работать в автономном режиме.Таким образом, я использую файл манифеста для определения кэшированных файлов сценариев.Однако я хотел бы обновить все сценарии, когда браузер снова подключен к сети.Я указал это следующим образом:

Network:
*

в файле манифеста под моими сценариями.Это не работает, хотя, потому что некоторые файлы не обновляются при обновлении браузера онлайн.Кроме того, если я проверяю инструменты разработчика в chrome, консоль показывает следующие события:

Application Cache Checking event
Application Cache NoUpdate event

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

Есть идеи?

См. Ниже мой полный файл манифеста:

CACHE MANIFEST
#rev20


# Explicitly cached entries
  ../css/sencha-touch.css
  ../Site.css
  ../css/mycss.css
  ../css/application.css
  ../../Scripts/SenchaTouch/sencha-touch-debug-w-comments.js
  ../../Scripts/js/Base/Index.js
  ../Images/Icons/green_indicator.png
  ../Images/Icons/red_indicator.png
  ../Images/toolbar_image.png
  ../Images/search_icon.png
  ../Images/loading.gif

NETWORK: 
*

РЕДАКТИРОВАТЬ:

Моя первоначальная идея заключалась в том, чтофайлы будут автоматически обновляться после их изменения.Однако, поскольку браузер использует файл манифеста для уведомления об изменениях (я думаю), число #rev необходимо увеличивать при изменении.Даже тогда, когда я тестировал, мне нужно было пару раз обновить страницу, чтобы она перезагрузила файлы.Я подозреваю, что есть что-то сделать в порядке, в котором браузер загружает и обрабатывает ресурс, но я не смог найти никакой информации об этом.

1 Ответ

2 голосов
/ 27 мая 2011

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

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

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

function updateCache(){
    window.applicationCache.swapCache();
    window.location.reload();
}

window.applicationCache.addEventListener("updateready", updateCache, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...