【发布时间】:2015-04-29 19:25:15
【问题描述】:
我在 javascript 中实现了 setInterval() 函数,它每 2 分钟进行一次 AJAX 调用。 ajax 调用返回我在 html 中附加的数据。我不知道为什么,但它使网站变得非常缓慢,逐渐。该网站是用node js开发的。我搜索了这个问题并了解了clearInterval() 函数。但我无法正确使用它。有人可以给我一个正确清除间隔的通用示例吗?或者这是与 node js 相关的其他问题?
代码如下:
setInterval(function() {
appendData(skipCount);}, 120000);
function appendData(_popularSkipCount) {
var cookieValue = $.cookie('type');
var _data = {
"limit": defaultLimit - 1,
"skipCount": _popularSkipCount
}
$.ajax({
type: "GET",
url: "/popular/" + cookieValue,
data: _data,
async: true,
success: function (data) {
$("#data-box").empty();
if($(data).size() > 0) {
for(var i = 0; i < $(data).size() ; i++) {
var html = "<div class='large-12 columns popular'><img class='image' src='" + $(data)[i].url + "' class='popular-img'><a href='/abc/" + $(data)[i].slug + "'><h4>" + name + "</h4></a><h5>" + city + "</h5></div>";
$(html).hide().appendTo("#data-box").fadeIn(1000);
}
} else {
appendData("0");
}
},
error: function(jqXHR, textStatus, errorthrown) {
$("#data-box").empty();
console.log(errorthrown);
}
});
};
【问题讨论】:
-
我猜你使用
synchronousajax 调用太频繁了。从而导致网站变慢 -
自行提供相关代码
-
请添加您的代码
-
@Praveen 或者附加内容很大
-
我建议不要使用
setInterval。相反,根据您的要求,您可以实现类似Publish/Subscribe的机制。这个想法是每当发生任何新的数据更改时,服务器都应该直接向客户端发送响应,从而消除setInterval的使用
标签: javascript jquery ajax node.js