Ipad ASP.NET清单文件脚本未刷新
我正在使用MVC和JS创建一个IPad应用程序。其中一个关键要求是应用程序在脱机模式下工作。因此,我使用清单文件来确定缓存的脚本文件。但是,我希望在浏览器再次联机时刷新所有脚本。我已通过以下方式说明:Ipad ASP.NET清单文件脚本未刷新,ipad,asp.net-mvc-3,manifest,offline,Ipad,Asp.net Mvc 3,Manifest,Offline,我正在使用MVC和JS创建一个IPad应用程序。其中一个关键要求是应用程序在脱机模式下工作。因此,我使用清单文件来确定缓存的脚本文件。但是,我希望在浏览器再次联机时刷新所有脚本。我已通过以下方式说明: Network: * 在我的脚本下面的清单文件中。但这不起作用,因为当浏览器联机刷新时,某些文件不会更新。此外,如果我检查chrome中的开发者工具,控制台将显示以下事件: Application Cache Checking event Application Cache NoUpdate e
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
编号需要增加。即使这样,当我测试时,我也不需要刷新页面几次,以使其重新加载文件。我怀疑这与浏览器加载和处理资源的顺序有关,但我找不到任何相关信息 浏览器仅在检测到缓存清单发生更改时更新缓存。增加你的修订号是迫使改变的好方法
浏览器检测到更改后,将下载文件并准备缓存的新版本。浏览器将不会使用新缓存,直到缓存完全满并且您刷新页面
您可以检测新缓存何时准备就绪,并使用以下javascript刷新页面以立即开始使用它:
function updateCache(){
window.applicationCache.swapCache();
window.location.reload();
}
window.applicationCache.addEventListener("updateready", updateCache, false);
嗨,你有什么收获吗我也有同样的问题…@熟练工。是和否。请参见上面的编辑