如果我在本地上下文中断言ajax缓存设置,jQuery 1.4.2会省略时间戳 GET参数(以阻止浏览器缓存):
$.ajax({
url: searcher,
data: keys,
cache: true,
type: 'GET',
dataType: 'json',
success: function(data) {
// something
});
Run Code Online (Sandbox Code Playgroud)
但如果我将设置从那里移出并进入全局上下文,它包括时间戳:
$.ajaxSetup({cache: true});
Run Code Online (Sandbox Code Playgroud)
此外,如果我让默认应用,jQuery设置时间戳,这似乎与手册不匹配.
你经历过同样的经历吗?
来自服务器的HTTP缓存控制响应头是否会影响此jQuery功能?
看起来很有效.以下三个ajax调用仅在第二种情况下将时间戳作为参数传递.timestamp参数的名称不是时间戳,而是下划线.
$.ajax({ url: '/?=testDefault',
data: { 'cache': 'default' }
});//no timestamp
$.ajaxSetup({ cache: false });
$.ajax({ url: '/?=testFalse/',
data: { 'cache': 'false' }
});//yes, a timestamp
$.ajaxSetup({ cache: true });
$.ajax({ url: '/?=testTrue/',
data: { 'cache': 'true' }
}); //no timestamp
Run Code Online (Sandbox Code Playgroud)
顺便说一句,你使用的是自动完成插件吗?默认情况下会传递timestamp参数.你可以通过传递这样的东西,使用extraParams选项覆盖它.
extaParams: {timestamp:'cache'}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21623 次 |
| 最近记录: |