0

我正在进行基本的实时聊天,想知道我是否正确地学习了这一点......

我有这样的呼叫功能:

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
        }
}

这是定期调用新消息的最佳方式吗?

4

1 回答 1

2

您正在执行同步调用 XMLHttpRequest-- 这会导致浏览器冻结,直到返回数据。 asynchronous更好,只是稍微复杂一点。

我建议做更多的研究。

我快速浏览了这个链接,它可能会有所帮助:http ://www.cristiandarie.ro/asp-ajax/Async.html

于 2012-09-06T00:56:20.833 回答