AJAX请求在机器上使用1GB的本地RAM

时间:2014-10-01 05:42:23

标签: javascript jquery ajax

我有一个使用大量AJAX请求的网站,差不多每2-3秒一次。

我意识到的一件事是,如果我将页面放置超过20分钟,它就会开始通过机器上的RAM进行操作并将其拉起(服务器从不挣扎)。

//Get the recent activity for the account
function getRecentActivity() {
    $.ajax({
        url: baseAPIurl + APIversion + "user/activity/",
        type: "GET",
        data: {
            user_id: ****
        },
        datatype: "json",
        success: function (e) {
            $("#recent_activity").empty();
            if (e.status == "success" && e.results != null) {
                $.each(e.results, function (e, t) {
                    if (t["campaign_type"] == "radio") {
                        $("#recent_activity").append('<li><a href="/***?id=' + t["campaign_id"] + '"><span class="label label-blue"></span>' + t["campaign_name"] + " - " + t["user_info"]["first_name"] + " " + t["action"] + '<br /><span class="pull-right text-muted small">' + t["timestamp"] + "</span></a></li>");
                    }
                    if (t["campaign_type"] == "online") {
                        $("#recent_activity").append('<li><a href="/***?id=' + t["campaign_id"] + '"><span class="label label-blue"></span>' + t["campaign_name"] + " - " + t["user_info"]["first_name"] + " " + t["action"] + '<br /><span class="pull-right text-muted small">' + t["timestamp"] + "</span></a></li>");
                    }
                })
            } else {
                $("#recent_activity").append('<li><a href="#"><span class="label label-blue"></span>No Recent Activity<span class="pull-right text-muted small">&nbsp;</span></a></li>');
            }
        }
    })
}

有什么更好的方法来发出这么多请求,而不是使用1GB或更多的RAM?

2 个答案:

答案 0 :(得分:1)

不是将html元素附加到DOM,而应该只是替换它们。这应该可以解决问题。

您的代码段中的示例:

  

$(“#recent_activity”)。html('

  • '+   t [“campaign_name”] +“ - ”+ t [“user_info”] [“first_name”] +“”+   t [“action”] +'
    '+   t [“timestamp”] +“
  • ”);

    答案 1 :(得分:1)

    根据OP的要求,我的意见是:

    您可以尝试.empty().append()(这将更加香草化),而不是.html().innerHTML。 我怀疑每个.append()调用jQuery内部缓存,但这可以通过使用例如Compuware AJAX Edition(检查内存本身)轻松证明。