gpt4 book ai didi

javascript - 长轮询 jQuery 在 IE 中不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:38:21 26 4
gpt4 key购买 nike

$.ajax 似乎在 IE 中不起作用。我该怎么办,或者这只是 IE 中的另一个错误?我是否需要在此处提供我的代码才能获得帮助?因为它似乎不适用于任何 $.ajax 示例。

我的代码:

function get_info(lines) {
$.ajax({
type: "POST",
cache: false,
url: "chat.php?RandomNumber=" + Math.random(),
data: "type=get_info&lines="+lines+"&RandomNumber=" + Math.random(),
dataType: "json",
success: function(msg){
lines = msg.lines;

if(msg.new_messages)
{
for(i = 0; i < msg.messages.length; i++)
{
$('.chat').append("<p>"+msg.messages[i]+"</p>");
}
document.getElementById('chatty').scrollTop = document.getElementById('chatty').scrollHeight;
}
},
complete: function() {
setTimeout(get_info, 1000, lines);
}
})

};

setTimeout(get_info, 1000, 0);

最佳答案

我现在看到您使用的 setTimeout 形式不适用于 IE 1 , 2 :

setTimeout(myFunction,myTimeout,parameter); //does NOT work for IE

相反,使用匿名函数作为参数,它应该使用正确的参数调用预期的函数:

setTimeout(function(){myFunction(myParameter);},myTimeout);

因此您对 setTimeout 的初始调用应更改为:

setTimeout(function(){get_info(0);}, 1000); 

随后对 success 的调用应该是:

setTimeout(function(){get_info(lines);}, 1000); 

如果这是因为 IE 正在缓存您的 GET 请求,您可以简单地将 jQuery.ajax()cache 设置为 false 并让jQuery 为您处理(记得在进行此更改后清除缓存):

//do this for *all* ajax requests
$.ajaxSetup ({
cache: false
});

//do it for this ajax request
$.ajax ({
cache: false,
//..other options here
});

关于javascript - 长轮询 jQuery 在 IE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5821631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com