您的位置:首页 > 其它

过多的ajax请求处理方案

2012-07-05 10:41 316 查看
1,定一个全局变量来保存当前所有要执行的ajax请求,作为一个队列,只不过这个队列有且只有一个存在并执行。

2,每次要新建并开始一个请求是,遍历这个请求数组,把之前已经存在的全部停止,把新的请求放进去。

这样能保证不会有过多的ajax请求被发起。

var yourQueryContainer = new Array();



var yourLoad = $.post("/PublisherSignups/getYourNetworks",postData,function(data){
$(".content").mask("Loading...");
if(data !== "[]"){
var ret = $.parseJSON(data);
var up = "";
if(ret.rows != undefined){
$.each(ret.rows,function(i,n){
var id = n.cell[0];
var name = n.cell[1];
var logo = n.cell[2];
var partner_id = n.cell[3];
var ne = (name.length > 9 ? name.substr(0,6)+"..." : name);
up += '<div class="item" id="item-'+partner_id+'"><input search="'+name+'" name="searchName" type="hidden"/><em class="network_logo" style="background-image: url('+logo+');  background-size: 90px 30px;"></em><a href="javascript:void(0);" onclick="edit('+partner_id+','+id+',\''+logo+'\',\''+name+'\');"><strong title="'+name+'">'+ne+'</strong></a><a href="javascript:void(0);" class="icon_x" onclick="removeAccount(this,'+id+');"></a></div>';
})
}

$(".content").html(up +"</div>");
}

$(".content").unmask();

});

if(yourQueryContainer.length > 0){
for(var i = 0; i < yourQueryContainer.length; i++){
yourQueryContainer[i].abort();
}
}
yourQueryContainer.push(yourLoad);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: