我有以下jQuery代码来获取我每秒生成的html页面。过了一会儿,它会导致内存不足错误。怎么解决?
$(document).ready(function() {
setInterval(function() {
$.get('some_page.html', function (data) {
$('#some_div').html(data);
});
}, 1000);
});
答案 0 :(得分:0)
如果发生的事情是在上一个事件结束之前触发了新请求,请确保先前的请求已完成,然后再次调用。我还没有真正测试下面的代码,但它应该指向正确的方向。使用setTimeout和recursion而不是setInterval。显然,如果出于某种原因需要它们(更像是一秒钟加上用户的网络条件下的请求周期),这个解决方案不会给你一秒钟的明确间隔但是我认为你只需要一个面部节奏刷新严格的时机并不重要。
我仍然是上面的评论,1秒的http请求间隔是有风险的,并且对浏览器和服务器都有点侮辱,所以应该有一个非常好的理由来使用它。
$(document).ready(function() {
function refresh(){
$.get('some_page.html', function (data) {
$('#some_div').html(data);
// call itself recursively
setTimeout(refresh, 1000);
});
};
// init
refresh();
});