Javascript 为什么ajax请求中缓存不清晰?

Javascript 为什么ajax请求中缓存不清晰?,javascript,php,ajax,caching,Javascript,Php,Ajax,Caching,我有一个外部js文件,通过使用ajax请求运行home.php文件 在我的代码中一切都很好。但缓存不清楚,甚至我在url中添加了随机函数 这是我的js代码 var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { alert(xmlhttp.resp

我有一个外部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。但它不起作用。所以,请给我任何解决这个问题的建议。

为了避免
js
css
文件包含缓存问题(回答您在问题注释中的问题),您必须在每次更改后自动更改其包含链接,为此您可以使用
filemtime(“文件”)
in-include-in
html

filemtime
返回文件创建时间,请在此处查找有关以下内容的手册-


它不能是浏览器缓存,如果它
唯一url
则浏览器没有缓存的相关信息,您可以使用
Firefox
或chrome
匿名模式对其进行测试。我猜你们在php端有一些缓存,试着调试你们的php脚本。若我在那个js文件中更改了一些东西,比如添加了警报消息,然后从索引页再次调用,那个么它就不能直接更改。所以,我从历史中清除缓存并再次运行,我得到了正确的结果。为什么?你说的是
ajax
请求url缓存?或者
js
在页面上包含url缓存
?这两个不同的东西意味着js包含url缓存。我从index.php调用我的js文件,如下所示。这两件事有多不同?从你的问题中我了解到你在哪里添加
Math.random()
param到
ajax
url这里
xmlhttp.open(“GET”http://myurl/home.php?t=“+Math.random(),true)它不起作用,我的第一个答案与此相关,是的,它是不同的东西,然后在html中包含js文件
<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") ?>" >