小编use*_*978的帖子

iOS 6上的Safari缓存$ .ajax结果吗?

自升级到iOS 6以来,我们看到Safari的Web视图可以自由地缓存$.ajax调用.这是在PhoneGap应用程序的上下文中,因此它使用Safari WebView.我们的$.ajax调用是POST方法,我们将缓存设置为false {cache:false},但仍然会发生这种情况.我们尝试手动添加TimeStamp标题,但它没有帮助.

我们做了更多研究,发现Safari只返回具有静态功能签名并且不会因呼叫而改变的Web服务的缓存结果.例如,想象一个名为:

getNewRecordID(intRecordType)
Run Code Online (Sandbox Code Playgroud)

该函数反复接收相同的输入参数,但每次返回的数据应该不同.

一定是苹果急于让iOS 6拉链令人印象深刻,他们对缓存设置感到满意.还有其他人在iOS 6上看到过这种行为吗?如果是这样,究竟是什么导致了它?


我们发现的解决方法是将函数签名修改为如下所示:

getNewRecordID(intRecordType, strTimestamp)
Run Code Online (Sandbox Code Playgroud)

然后总是传入一个TimeStamp参数,并在服务器端丢弃该值.这解决了这个问题.我希望这能帮助其他一些在这个问题上花费15个小时的穷人,就像我一样!

javascript ajax jquery caching mobile-safari

1057
推荐指数
13
解决办法
14万
查看次数

标签 统计

ajax ×1

caching ×1

javascript ×1

jquery ×1

mobile-safari ×1