在使用jquery的加载函数加载的页面上,包含的所有javascript文件都有一个参数“_”,其值等于当前的unix时间戳加上加载时的3个额外数字。
例如,如果我包含“file.js”,那么包含的实际文件将是“file.js?_ = 1378360893522”。
它阻止了javascript文件的缓存,有没有办法阻止这种行为?
编辑:根据要求提供相关代码:
的index.html:
<html>
<head>
<script type="text/javascript" src="js/jquery.min.js"></script>
</head>
<body>
<div id='new-page'></div>
</body>
<script>
$(document).ready(function() {
$('#new-page').load("another-page.html");
});
</script>
</html>
另一个-page.html中:
<html>
<head>
<script type="text/javascript" src="js/another-js-file.js"></script>
</head>
<body>
</body>
</html>
“another-js-file.js”加载为“another-js-file.js?_ = 1378425747710”
第二次修改:已回答。对于读这篇文章的人,我改变了我的加载调用,使其更像是:
$.ajax({
url: "another-page.html",
cache: true,
dataType: "html",
success: function(data){
$("#new-page").html(data);
}
});
有些人说某些插件可能会通过ajaxSetup将缓存设置为false,因此可能需要在要缓存的ajax调用之前使用它:
$.ajaxSetup({cache:true});
答案 0 :(得分:4)
您的问题已有详细记录,可以从以下方面获取解决方案:
jQuery version 1.5 - ajax - <script> tag timestamp problem
解决方案涉及在jQuery AJAX调用中使用cache
选项。