过多的ajax请求处理方案

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);


posted @ 2012-07-05 10:41  lein.wang  Views(341)  Comments(0Edit  收藏  举报