Javascript Jquery$.get&引用;“数据”;在Internet Explorer中循环中变量未更改

Javascript Jquery$.get&引用;“数据”;在Internet Explorer中循环中变量未更改,javascript,jquery,Javascript,Jquery,我有这个密码 function check(){ $.get("friend.php", { id: friendid }, function(data){ //Do stuff with 'data' variable }); setTimeout(check,5000); } 它每5秒检查一次friend.php,并将结果返回给数据变量 我尝试在其他浏览器中运行良好,但在IE8中,在第一次检查friend.php之后,数据变量的内容没有改变。事实上,我甚至认为IE8不会再检查了。

我有这个密码

function check(){

$.get("friend.php", { id: friendid }, function(data){

//Do stuff with 'data' variable

});

setTimeout(check,5000);

}
它每5秒检查一次friend.php,并将结果返回给数据变量

我尝试在其他浏览器中运行良好,但在IE8中,在第一次检查friend.php之后,数据变量的内容没有改变。事实上,我甚至认为IE8不会再检查了。但它确实执行了所有其他代码,就好像它已经执行了一样。尽管它保持“数据”变量完全相同


我做错了什么事还是我的错?如何修复此问题?

IE缓存AJAX请求的结果。您需要添加一个始终更改url的伪变量。例如:

function check(){

$.get("friend.php", { id: friendid, nonce: Math.floor(Math.random()*10000) }, function(data){

//Do stuff with 'data' variable

});

setTimeout(check,5000);

}

可能是缓存问题。您可以在ajax请求中使用
cache:false

请参见

尝试预先放置:

$.ajaxSetup({
  cache: false,
});
我更喜欢
(+new Date())
以毫秒为单位添加时间戳。时间戳更短,而且不可能拾取相同的随机数(嘿,可能会发生!);-)。