在多次调用ajax函数之后,我注意到启动了许多进程,并且我的网站被阻止了(但在localhost上运行良好)。

jQuery调用与流程之间有什么关系?
阻止它的主机的安全性是吗?

我有许多功能可以进行自动刷新。如何刷新而不阻止我的网站?



var auto_refresh3 = setInterval( function () {
    //tchata2.php is a file checking the new messages
     $.post("tchata2.php",{FID:identif},function (data){
          if($('#newmsg').val()!=data){
              $('#newmsg').empty();
              $("#newmsg").append(data);
          }
     });
}, 1000); // checking for other messages after 1 second

最佳答案

在ajax内部延迟完成后再次调用该函数将是一个更好的主意,并且会增加时间延迟。在外部使用setInterval会发送多个连续的请求,由于占用过多的内存,可能会中断浏览器。

var auto_refresh3 = function () {
     $.post("tchata2.php",{FID:identif},function (data){
          if($('#newmsg').val()!= data){
              $('#newmsg').empty();
              $("#newmsg").append(data);
          }
          setTimeout(auto_refresh3, 5000);
     }).fail( function(xhr, textStatus, errorThrown) {
         setTimeout(auto_refresh3, 5000);
     });
}

10-06 07:51