JS的请求 - 这是过时了吗?

时间:2012-09-06 00:49:36

标签: javascript

我正在进行基本的在线聊天,并且想知道我是否正确地学习了这个......

我有这样的通话功能:

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

这是定期呼叫新消息的最佳方式吗?

1 个答案:

答案 0 :(得分:2)

您正在与XMLHttpRequest进行同步调用 - 这会导致浏览器冻结,直到返回数据。 asynchronous非常好,只是触摸得更复杂。

我建议你做更多的研究。

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