最佳实践,如何为使用jQuery的简单php聊天创建ajax请求?

最佳实践,如何为使用jQuery的简单php聊天创建ajax请求?,php,jquery,ajax,chat,settimeout,Php,Jquery,Ajax,Chat,Settimeout,我有一个简单的聊天,我现在的想法是这样的: function ajax() { $.ajax({ url: '/chat/index/json', type: 'POST', dataType: "json", success: function(data) { // output the html to my chat window } }); window

我有一个简单的聊天,我现在的想法是这样的:

function ajax() { 
    $.ajax({  
        url: '/chat/index/json',
        type: 'POST',
        dataType: "json",
        success: function(data) {   
           // output the html to my chat window
        }
    });
    window.setTimeout("ajax()",5000);
}


$(document).ready(function() {
    ajax();
    $('#chat').submit(function(e) { 
        e.preventDefault();
        sendMessage();
    });
});


function sendMessage()
{   
    // grab the values from text textarea
    $.ajax({
          url: '/chat/index/jsave',
          type: 'POST',
          dataType: "html",
          data: message,
          success: function(d) {  
              // empty the textarea 
              ajax(); 
          }
    });
}
我基本上调用
ajax()每5秒运行一次。我不确定这是否是最好的方法,因为我每5秒就有一个对服务器的请求

有更好的方法吗


谢谢

首先,尝试使用GET而不是POST。GET将更快地工作,因为您不发送受安全保护的数据,所以可以使用它。如果您有聊天室,则必须每n秒向服务器发送一次请求。

首先,尝试使用GET而不是POST。GET将更快地工作,因为您不发送受安全保护的数据,所以可以使用它。如果您有聊天室,则必须每n秒向服务器发送一次请求。

我认为您正在寻找与Ajax无关的函数,关于
setTimeout
的最佳实践是传递函数引用而不是字符串:
window.setTimeout(Ajax,5000)
我认为您正在寻找与Ajax无关的方法,
setTimeout
的最佳实践是传递函数引用而不是字符串:
window.setTimeout(Ajax,5000)不同意“如果您有聊天。。。你必须这样做。你可以,但作为替代,你可以使用长轮询或网络socket。不同意“如果你有聊天室。。。你必须这样做。可以,但也可以使用长轮询或web套接字