Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iPad全屏模式&&;飞行模式_Javascript_Ajax_Ipad_Web Applications_Offline Caching - Fatal编程技术网

Javascript iPad全屏模式&&;飞行模式

Javascript iPad全屏模式&&;飞行模式,javascript,ajax,ipad,web-applications,offline-caching,Javascript,Ajax,Ipad,Web Applications,Offline Caching,我正在开发一款iPad网络应用程序,它需要同时处于全屏模式和飞行模式 我们一直在使用缓存清单存储我们需要的所有文件,但棘手的是,现在我们正在URLie.file.html?account=234中传递信息,当您在飞行模式下尝试链接到这样的文件时,返回一个错误,说iPad无法访问该域。。。尽管缓存清单中缓存了file.html iPad似乎认为file.html和file.html?account=234是两个完全不同的文件/URL,因此它发现它不在缓存清单中,并尝试连接到服务器 这一切背后的想法

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

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

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

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

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


看起来我的方法完全错了,但我现在有点不知所措。有没有一种方法可以使用AJAX将
文件.html
加载到
索引.html
中,同时传递
帐户=234

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

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


或者正如你所说,你的方法可能根本没有意义。你考虑过使用吗?您可以将所有相关信息下拉到对您有意义的数据结构中,并将其存储以供脱机使用。

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

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

一般来说,就缓存而言,file.html和file.html?param=val是不同的页面。我不确定这是否正确。旧浏览器没有,但据我所知,所有现代浏览器都有。另外,除非为每个用户创建一个动态清单,否则您的解决方案不能与清单一起使用。@Gerben我认为您弄错了。使用URL的组件部分或使用querystring作为参数没有区别。使用querystring参数“欺骗”浏览器,使其在进行AJAX调用时始终返回服务器是一种常见的技术。但您仍然需要使用querystring或路径编码的帐号将url添加到清单中。@Gerben确切地说-连接后,拉入/account-234。脱机时,对该文件的后续调用将命中缓存。否。当它不在清单中时,将导致错误。除非在清单中添加一个网络部分,但在飞行模式下仍然会出现错误。即使已经访问了带有查询字符串的文件,在正常情况下,再次尝试拉取它仍然会返回到服务器,因为它有一个查询字符串。@rex