jQuery AJAX调用中的内存泄漏

我写了一个小聊天框小部件,它每秒运行一次ajax调用,以获取已发布的新消息.问题是它正在泄漏内存,只有大约15分钟的打开后它会崩溃我的浏览器(Firefox).

这可能是我,因为我是一个相对新手,我敢肯定我错过了一些东西或者没有让我的变量等等.

var chat = {}
chat.fetchMessages = function() {
    $.ajax({
        url: '/chat_ajax.php',type: 'post',data: { method: 'fetch'},success : function(data) {
            $('#chat .messages').html(data);
            $("#chat").scrollTop($("#chat")[0].scrollHeight);
        }
    });
}
chat.interval = setInterval(chat.fetchMessages,1000);
chat.fetchMessages();

有人可以看一下我的(基本)代码,看看你是否能找到内存泄漏发生的地方,以及我做错了什么?我是否需要取消某些变量或其他内容?

非常感谢!

解决方法

切勿将setInterval()与ajax一起使用,否则您的请求永远不会保持同步.使用setTimeout()代替然后等待你的逻辑,在完整的回调中递归地启动setTimeout().

例.

$(DoMyAjax); // start your ajax on DOM ready
function DoMyAjax() {
   $.ajax({ 
      complete: function() {
          // your logic here
          setTimeout(DoMyAjax,1000);
      }
   });
}

相关文章

1.第一步 设置响应头 header('Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...