iOS 6 上的 Safari 是否缓存 $.ajax 结果?
自从升级到iOS 6以来,我们看到Safari的Web视图可以自由缓存调用。这是在PhoneGap应用程序的上下文中,因此它使用的是Safari WebView。我们的调用是方法,我们将缓存设置为 false ,但这仍然在发生。我们尝试手动将 a 添加到标头中,但没有帮助。$.ajax
$.ajax
POST
{cache:false}
TimeStamp
我们做了更多的研究,发现 Safari 只返回 Web 服务的缓存结果,这些服务的函数签名是静态的,不会因调用而变化。例如,想象一个名为以下内容的函数:
getNewRecordID(intRecordType)
此函数一遍又一遍地接收相同的输入参数,但它每次返回的数据都应该不同。
必须以Apple的速度使iOS 6压缩令人印象深刻,他们对缓存设置非常满意。有没有人在iOS 6上看到过这种行为?如果是这样,究竟是什么原因造成的?
我们发现的解决方法是将函数签名修改为如下所示:
getNewRecordID(intRecordType, strTimestamp)
然后始终传入参数,并在服务器端丢弃该值。这可以解决此问题。TimeStamp