1

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

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

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

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

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

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

4

3 回答 3

1

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

于 2011-09-15T15:42:23.553 回答
0

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

于 2011-09-16T16:10:12.943 回答
-1

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

在最简单的层面上,尝试切换到使用 URL 的组成部分,例如/account-234/.

或者正如您所说,您的方法可能根本没有意义。您是否考虑过使用HTML5 本地存储?您可以将所有相关信息提取到对您有意义的数据结构中,并将其存储以供离线使用。

于 2011-09-15T15:40:15.323 回答