HTML5缓存清单如何可能请求在线查看缓存文件?

时间:2012-03-10 21:38:30

标签: html5 web-applications manifest cache-manifest

我正在为iPhone开发一个Web HTML5应用程序,我陷入了相当奇怪的境地。我需要缓存整个事情以供离线使用,这很好,但问题是,当你在线时它仍然使用缓存版本。我需要应用程序才能使用在线版本而不是缓存版本,但我无法找到任何关于这样做的信息。

提前致谢!

1 个答案:

答案 0 :(得分:1)

我不知道您使用的是什么框架,但在Sencha中,您需要通过执行以下操作来指定使用网络:

NETWORK:
*

如果您的清单文件中有内容,它将始终使用该缓存副本,这正是您遇到的问题。这是清单文件中项目的默认行为。

现在,它变得有点棘手了。

文章:http://www.sencha.com/learn/taking-sencha-touch-apps-offline/

在这个Sencha离线示例中,他们为缓存数据库设置了代理,然后在浏览器缓存和本地存储之间切换。

然后,您希望创建一个没有超时的侦听器,以检测您是离线还是在线。

如果超时,则使用本地代理。像这样:

this.onlineStore.addListener('load', function () {
    console.log("I think we are online");
    helloWorld.offlineStore.proxy.clear();
    this.each(function (record) {
        var photo = helloWorld.offlineStore.add(record.data)[0];
    });
    helloWorld.offlineStore.sync();
    helloWorld.gallery.bindStore(helloWorld.offlineStore);
});