iPad全屏模式&&飞行模式

时间:2011-09-15 15:37:07

标签: javascript ajax ipad web-applications offline-caching

我正在开发一个需要同时处于全屏模式和飞行模式的iPad网络应用。

我们一直在使用Cache Manifest来存储我们需要的所有文件,但是现在我们正在传递URL ie. file.html?account=234中的信息以及当您尝试链接到这样的文件时,棘手的部分是在飞行模式期间,返回错误,表示iPad无法访问域...尽管file.html缓存在缓存清单中。

似乎iPad认为file.htmlfile.html?account=234是两个完全不同的文件/网址,因此它会发现它不在缓存清单中并尝试连接到服务器。

所有这一切背后的想法是我们在index.html中显示JSON文件中的帐户列表,然后在file.html中显示account param jQuery $.url().param()插件)并从JSON文件构建帐户信息。

这就像使用JSON文件作为数据库的低保真方式,它在全屏模式下工作正常..除非您处于飞行模式。这是一个问题,因为这个原型需要在没有互联网连接的情况下工作。

看起来我的方法完全错了,但我现在有点不知所措。有没有办法使用AJAX将file.html加载到index.html并同时传递account=234

3 个答案:

答案 0 :(得分:1)

file.html?account = 234和file.html是2个不同的网址。您可以在哈希(#)中添加帐号而不是参数。但我认为如果您只是将帐号存储在cookie或localstorage中会更好。

答案 1 :(得分:0)

好的,我很高兴地报告localStorage是完美的解决方案。我只是将一个键/值存储为“帐户”,“234”。

答案 2 :(得分:-1)

Safari与所有浏览器一样,不会使用查询字符串缓存网址。这个事实一直用于通过添加查询字符串来强制刷新AJAX调用。

在最简单的级别,请尝试切换为使用网址的组成部分 - 例如/account-234/

或者正如您所说,您的方法可能根本没有意义。你看过使用HTML5 local storage吗?您可以将所有相关信息下载到对您有意义的数据结构中,并将其存储以供离线使用。