我正在开发一个需要同时处于全屏模式和飞行模式的iPad网络应用。
我们一直在使用Cache Manifest来存储我们需要的所有文件,但是现在我们正在传递URL ie. file.html?account=234
中的信息以及当您尝试链接到这样的文件时,棘手的部分是在飞行模式期间,返回错误,表示iPad无法访问域...尽管file.html
缓存在缓存清单中。
似乎iPad认为file.html
和file.html?account=234
是两个完全不同的文件/网址,因此它会发现它不在缓存清单中并尝试连接到服务器。
所有这一切背后的想法是我们在index.html
中显示JSON文件中的帐户列表,然后在file.html
中显示account
param jQuery $.url().param()
插件)并从JSON文件构建帐户信息。
这就像使用JSON文件作为数据库的低保真方式,它在全屏模式下工作正常..除非您处于飞行模式。这是一个问题,因为这个原型需要在没有互联网连接的情况下工作。
看起来我的方法完全错了,但我现在有点不知所措。有没有办法使用AJAX将file.html
加载到index.html
并同时传递account=234
?
答案 0 :(得分:1)
file.html?account = 234和file.html是2个不同的网址。您可以在哈希(#)中添加帐号而不是参数。但我认为如果您只是将帐号存储在cookie或localstorage中会更好。
答案 1 :(得分:0)
好的,我很高兴地报告localStorage是完美的解决方案。我只是将一个键/值存储为“帐户”,“234”。
答案 2 :(得分:-1)
Safari与所有浏览器一样,不会使用查询字符串缓存网址。这个事实一直用于通过添加查询字符串来强制刷新AJAX调用。
在最简单的级别,请尝试切换为使用网址的组成部分 - 例如/account-234/
。
或者正如您所说,您的方法可能根本没有意义。你看过使用HTML5 local storage吗?您可以将所有相关信息下载到对您有意义的数据结构中,并将其存储以供离线使用。