jQuery.ajax,缓存和时间戳
jQuery.ajax, cache and timestamps
我正在使用jquery.ajax方法向服务器发送GET请求,缓存应该被破坏,所以缓存设置为false,到目前为止一切顺利。
jQuery会自动将时间戳(我猜是纪元毫秒)添加到请求网址中,以破坏缓存。有没有办法控制jQuery使用的时间戳?(即使是几秒钟也足够了,并帮助服务器正确进行缓存,...)
无需手动更改jQuery的代码,也不干净。
深入研究jQuery代码,我们看到jQuery生成的nonce(在这种情况下只是时间戳)在那里是相当硬编码的。
https://github.com/jquery/jquery/blob/91850ecbbe04ad8f5d89dc050aa1d9002047c435/src/ajax.js(607行)
那里的nonce
变量被传入,但是如果我们沿着线索返回,它会导致 jQuery.now()
,这只是 (new Date).getTime()
的别名。
因此,您的选择是:
1)手动将您自己的值附加到每个URI上,并忽略jQuery的值。
2)脏。重写 jQuery 的 now()
函数以返回您查找的值。光是想想就让我不寒而栗!因此,您可能会遇到其他意外错误,所以我不推荐它,但这是可能的。如果您仍然返回接近当前时间戳的时间戳,也许它不会太糟糕,但这可能根本不是您的情况。一个幼稚的例子:https://jsfiddle.net/pf5pskg5/
试试这个:
$.ajaxSetup({cache: false});
这样做是告诉浏览器永远不要缓存 AJAX 请求。
由于某些浏览器倾向于缓存 AJAX 请求,尤其是当它们是 HTTP GET 请求时,我遇到了奇怪的行为。
如果您不关闭 AJAX 请求缓存,IE 11 将尝试使用其缓存版本的 AJAX 请求,并对服务器返回的 HTTP 状态撒谎("304 未修改")。
- 如何每10.6秒从时间戳增加+1
- 使用AngularJS从时间戳中获取工作日
- 将时间戳转换为java中的ISO860,
- Javascript Unix时间戳转换
- JavaScript JSON关联对象键和值都作为日期时间戳
- 时间戳与mongoskin如何
- 用时间戳获取两个不同日期之间的时间差
- JavaScript到PHP的时间戳失败,增加了大约一个半月的时间
- 转换unix时间戳转换
- 带有unix时间戳的d3.js平分线
- 当转换为Python日期时间时,Node的时间戳落后3分钟
- 如何检索AMD的XHR响应代码(+时间戳)'大型Dojo
- javascript时间戳插入字符串变量
- Moment.js unix时间戳,以分钟为单位显示以前的时间
- jQuery.ajax,缓存和时间戳
- 使用mongodb时间戳缓存标头
- 使用js在gif中附加时间戳以防止缓存
- 通过添加时间戳清除图像缓存
- jQuery json缓存,是否有办法改变时间戳url键
- 使用javascript将时间戳添加到iframe中的src(防止缓存)