我有外部js文件,它使用ajax请求运行home.php文件。
我的代码中的一切都很好。但即使我在url中添加随机函数,缓存也不清楚。
这是我的js代码。
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
alert(xmlhttp.responseText);
}
}
xmlhttp.open("GET","http://myurl/home.php?t="+Math.random(),true);
xmlhttp.setRequestHeader( "Pragma", "no-cache" );
xmlhttp.setRequestHeader( "Cache-Control", "no-cache" );
xmlhttp.send();
每次我从index.php调用这个js文件时,都会得到缓存结果。
为了避免缓存问题,我已经在url中添加了唯一ID。但它不起作用。所以,请给我任何解决这个问题的建议。
答案 0 :(得分:1)
为避免js
或css
个文件包含缓存问题(回答问题评论中的问题),您必须在每次更改后自动更改其包含链接,为此您可以使用{{1在追索权中包括filemtime("file")
html
返回文件创建时间,请在此处查找手册 - http://php.net/manual/en/function.filemtime.php
filemtime
因此,通过这种方式,<script
src="http://url/some.js?t=<?php filemtime("PATH_TO_FILE/some.js") ?>" >
</script>
<link rel="stylesheet" type="text/css"
href="http://url/some.css?t=<?php filemtime("PATH_TO_FILE/some.css") ?>" >
或some.js
每次修改时,他们的创建时间都会发生变化,而some.css
将会添加新的网址链接(home.php
)追索权和bowser将不得不重新加载