Jam*_*mes 5 javascript apache jquery
可能重复:
阻止缓存AJAX调用
我正在使用jQuery来读取Web服务器上的一个小文本文件:
jQuery.get('scores.txt', function(data) {
parseScores(data);
});
Run Code Online (Sandbox Code Playgroud)
这几乎可以正常工作 - 但它无法可靠地加载最新版本的文件.即使story.txt已更改,刷新页面也会返回完全相同的值data.
服务器是标准的Mac OS Apache,没有启用缓存,它与客户端是同一台机器 - 所以理论上我和它之间没有其他缓存.
如果我加载http://127.0.0.1/scores.txt到浏览器然后它总是打开最新版本.
查看Apache日志,对于页面无法更新的时间,jQuery GET请求永远不会到达服务器.
我怀疑我可能需要将此问题移至serverfault.com,但任何人都可以看到我的JavaScript出现问题会使其以这种方式运行吗?
有没有办法使用JavaScript/jQuery强制浏览器请求文件的新副本?
提前致谢.
您可以为每个请求添加唯一标识符,以阻止浏览器缓存响应.仅仅因为客户端与Web服务器位于同一设备上,这不会阻止浏览器缓存响应(也不会阻止某些代理服务器参与到正确的环境中).
jQuery.get('scores.txt', {
now: jQuery.now()
}, function(data) {
parseScores(data);
});
Run Code Online (Sandbox Code Playgroud)
尝试添加cache: false到您的AJAX选项:
jQuery.ajax({
url: 'scores.txt',
dataType: 'text',
type: 'GET',
cache: false,
success: parseScores
});
Run Code Online (Sandbox Code Playgroud)
jQuery会自动为每个请求添加一个缓存防止时间戳.
像这样向文件名添加缓存消除器(例如时间戳)。
jQuery.get('scores.txt?' + (+new Date()), function(data) {
parseScores(data);
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1988 次 |
| 最近记录: |