Автономное приложение на asp.net

Я пытаюсь создать приложение с автономными функциями. Созданный мной файл манифеста выглядит так:

CACHE MANIFEST 
# version 1.0.0

CACHE:
/ShareBill.Web-Offline/
/ShareBill.Web-Offline/Groups
/ShareBill.Web-Offline/Content/Site.css
/ShareBill.Web-Offline/Content/jquery-ui.css
/ShareBill.Web-Offline/Scripts/ShareBill.js
/ShareBill.Web-Offline/Scripts/lib/jquery-1.7.2.min.js
/ShareBill.Web-Offline/Scripts/lib/jquery-ui.min.js
/ShareBill.Web-Offline/Scripts/TransactionsIndex.js
/ShareBill.Web-Offline/Content/Images/ajax-loader.gif
/ShareBill.Web-Offline/Content/Images/br_down_icon.png

NETWORK: 
/ShareBill.Web-Offline/Transactions/Filters

Я ожидаю увидеть этот URL-адрес /ShareBill.Web-Offline/Groups. Мой браузер не должен делать никаких запросов к серверу, иначе вся цель автономного режима будет недействительна.

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

Теперь, когда я выключаю свой IIS и делаю такой запрос, я заканчиваю статус моего AppCache как УСТАРЕВШИЙ. Затем при следующем обновлении страницы я получаю ответ 404. Я что-то упускаю в плане реализации?


person tusharmath    schedule 06.07.2012    source источник
comment
AppCache должен быть установлен только на OBSOLETE, если запрос получает ответ 404 или 410, ваш сервер должен быть запущен, чтобы браузер получил такой ответ. Если сервер не запущен, браузер вообще не получит ответа.   -  person robertc    schedule 06.07.2012


Ответы (1)


Я применил заголовок Expires к запросу, который запрашивал файл манифеста. И это сработало :)

person tusharmath    schedule 06.07.2012
comment
Какой заголовок с истечением срока действия вы применили? Предполагается, что приложение каждый раз запрашивает файл манифеста, чтобы узнать, было ли обновление. - person robertc; 06.07.2012
comment
Я добавил дату истечения 2050-01-01 (гггг-мм-дд). По сути, это не будет делать никаких запросов к серверу. Проблема все еще существует, мне нужно очистить кеш приложения, когда обновляется любой файл js на стороне сервера. Несмотря на то, что я обновляю свой файл манифеста, я не получу эти изменения на клиенте, поскольку сам файл манифеста кэшируется. - person tusharmath; 07.07.2012
comment
Если ваш файл манифеста никогда не истекает, ваш appcache никогда не будет обновлен, поэтому браузер каждый раз проверяет файл манифеста. - person robertc; 07.07.2012