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())
以毫秒为单位添加时间戳。时间戳更短,而且不可能拾取相同的随机数(嘿,可能会发生!);-)。