9

iOS6 ajax POST 请求缓存正在成为我们 webApp 的一个大问题。我们的大多数用户都已将应用程序添加到主屏幕。自从升级以来,大多数对后端的 POST 请求都无法正常工作,并且 6 天前的数据已经过时并且还在增加。我们知道解决此问题的两种解决方法,一种是通过添加时间戳或一些随机输入来更改每个 POST 请求,使其不同,第二种是禁用网络服务器上的缓存。

以下帖子详细介绍了这两种解决方法: iOS 6 上的 Safari 是否缓存 $.ajax 结果?

如果在 iOS6 升级之前(或之后)设置,关闭网络服务器上的缓存可以解决问题。但是,似乎自升级以来发出的任何 POST 请求,直到我们从添加到主屏幕的应用程序中关闭缓存时,仍会被缓存!我们找不到清除它们的方法。删除主屏幕应用程序并重新启动设备并不能解决问题!除了关闭网络服务器上的缓存之外,我们唯一的选择是更改我们的 URL 或为每个请求添加时间戳。

除了恢复到工厂,有谁知道清除主屏幕应用程序缓存的方法?请提供详细信息。

警告任何通过在他们的请求中添加时间戳而不关闭服务器上的缓存来实现解决方法的人。如果您的应用程序被添加到主屏幕,现在每个帖子响应都将被缓存并且它似乎不会过期。除非有人有办法清除它,否则这看起来像是潜在的内存泄漏!

4

1 回答 1

1

根据我的经验,解决这个缓存问题的唯一方法是采用 Google 的方法并在 url 中添加每个请求的 id。然后,您可以为您的服务器使用 mod_rewrite 或其他此类引擎,以使您的后端脚本透明。

于 2012-10-05T14:10:00.700 回答