使用Cache Manifest的HTML5 Offline App文件永远不会更新

时间:2012-03-22 10:40:57

标签: html5 jquery-mobile browser-cache

我用jQueryMobile开发了一个HTML5移动应用程序,我正在尝试提供离线功能,允许用户在没有Internet连接的情况下使用该应用程序。 我一直在关注本教程:http://www.html5rocks.com/en/tutorials/appcache/beginner/

  • 已创建清单文件。
  • 将mime-type text / cache-manifest添加到.htaccess文件中。
  • 页面包含HTML标记中的清单文件。

我测试它似乎工作。当我没有连接时,我的页面之间的Web导航仍然有效。 不过,我发现了两个主要问题:

1)当我通过连接进入应用程序然后将其关闭时,离线导航正常工作。从移动设备浏览器打开应用程序,在没有连接的情况下将地址栏中的URL写入白名单时,不会加载Web应用程序!虽然我之前访问过网络应用程序。

2)Web应用程序文件永远不会更新。例如:

  • 我在catched CSS文件中更改了一些内容。
  • 我更新了Manifest文件中的注释,告诉应用更新它 文件。
  • CSS文件永远不会更新。当前版本是以前的版本 之一。

我尝试从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,对吧?)。

你能帮我找一下问题所在吗? 非常感谢!!

塞吉

0 个答案:

没有答案