我正在进行基本的在线聊天,并且想知道我是否正确地学习了这个......
我有这样的通话功能:
function call_data(url,data)
{
if (window.XMLHttpRequest) {
AJAX=new XMLHttpRequest();
} else {
AJAX=new ActiveXObject("Microsoft.XMLHTTP");
}
if (AJAX) {
querystring = "?dta="+data;
AJAX.open("GET", url + querystring, false);
AJAX.send(null);
return AJAX.responseText;
} else {
return false;
}
}
function checker(id){
result = parseInt(call_data('check_chat.php',id)); //check new messages
if(result){//if new message
loadchat(id); //load the messages
} else {
setTimeout(function() { checker(id); }, 5000); //check for new message every 5 seconds
}
}
这是定期呼叫新消息的最佳方式吗?
答案 0 :(得分:2)
您正在与XMLHttpRequest
进行同步调用 - 这会导致浏览器冻结,直到返回数据。 asynchronous
非常好,只是触摸得更复杂。
我建议你做更多的研究。
我快速浏览了这个链接,它可能会有所帮助:http://www.cristiandarie.ro/asp-ajax/Async.html