我用jQueryMobile开发了一个HTML5移动应用程序,我正在尝试提供离线功能,允许用户在没有Internet连接的情况下使用该应用程序。 我一直在关注本教程:http://www.html5rocks.com/en/tutorials/appcache/beginner/
我测试它似乎工作。当我没有连接时,我的页面之间的Web导航仍然有效。 不过,我发现了两个主要问题:
1)当我通过连接进入应用程序然后将其关闭时,离线导航正常工作。从移动设备浏览器打开应用程序,在没有连接的情况下将地址栏中的URL写入白名单时,不会加载Web应用程序!虽然我之前访问过网络应用程序。
2)Web应用程序文件永远不会更新。例如:
我尝试从JavaScript检测Cache的状态以管理页面刷新:
function checkCacheVersion(){
var webappCache = window.applicationCache;
if(webappCache){
//0-> unchached
//1-> idle
//2-> checking
//3-> downloading
//4-> updateready
console.log('Cache state= ' + webappCache.status);
if(webappCache.status == window.applicationCache.UPDATEREADY){
console.log('[Cache] There is an update waiting for reload');
webappCache.swapCache();
location.reload();
}
}
}
尽管如此,缓存状态始终处于“空闲”状态。这是什么意思? 我明白,如果未正确配置缓存,我将收到“未缓存”状态。正确?
另一方面,如果我从Manifest文件中删除它,则只刷新示例的CSS文件。因此,浏览器检测到文件未被捕获并正确获取(我的意思是,正确配置了Cache,对吧?)。
你能帮我找一下问题所在吗? 非常感谢!!
塞吉