0

我有使用 jquery ajax 的自动请求,我正在使用这个功能来检测新的聊天消息和通知案例。有时我又在想如果客户端自动请求没有完成会有什么影响,

我担心我的服务器已关闭,因为我认为这就像 DDOS HTTP 限制。

这是我的代码

    $(function(){
         initChat();
    });

    /* 
     * initialize chat system
     */
    function initChat() {
        setTimeout("notifChat()" ,2000);    
    }

    function notifChat() {
        $.ajax({
            url: '/url',
            type:"GET",
            data: {id:$("#id").val()},
            success:function (data,msg) {
                //to do success

            }
        });
        setTimeout("notifChat()" ,2000);
    }

我的问题是

  1. 是否可以关闭服务器或使服务器挂起?
  2. 如果不是更好的主意,有什么建议吗?
4

1 回答 1

1

注意:这不是生产就绪代码,我没有测试过。

这段代码的几个星期:

它不处理两个http连接限制

强项:

它可以判断服务器是否返回错误(如服务器错误 404,403,402 ....)

var failed_requests = 0;
var max = 15;

$(function(){

     initChat();
});

/* 
 * initialize chat system
 */
function initChat()
{
     setTimeout(
             function() 
             {
                notifChat(); 
             }, 2000)
}


function notifChat() {
    $.ajax({
        url: '/url',
        type:"GET",
        data: {id:$("#id").val()},
        success:function (data,msg) 
        {
            //to do success

        },
        complete: function()
        {

            // either call the function again, or do whatever else you want.


        },
        error: function(XMLHttpRequest, textStatus, errorThrown)
        {   
            failed_requests = failed_requests + 1;

            if(failed_requests  < max)
            {
                setTimeout(
                         function() 
                         {
                            notifChat();
                         }, 2000)
            }
            else
            {  
                alert('We messed up');
            }

        }


    });

}
于 2012-08-10T06:39:09.977 回答