jquery ajax异步获取数据,防止重复获取
  R0Sx2erBMixA 2023年11月02日 57 0


一个onclick事件,当发送一个ajax请求时,如果该请求没有返回,则不进行 下一次的请求。该问题的处理非常类似多线程中对资源共享共享的处理。下面代码中 isSended 标志类似多线程中的锁

 

代码取自jxwpgsh 中站内搜索中查询单位的结果列表页面

 

var isSended=false;//类似多线程中的锁
function getProject(obj,company){
	var name = encodeURI(encodeURI(company));
	var dataTable=$(obj).next().next();
	$(dataTable).empty();
	if($(dataTable).css("display")!="block"){
	     var loadingstr = "<tr class=\"loading\"><td>Loading...</td></tr>";
	     $(dataTable).append(loadingstr);
	     $(dataTable).css("display","block");
        if(isSended==false){
          getProjectAjax(name,dataTable);
        }
	
	}else{
		$(dataTable).css("display","none");
		$(dataTable).fadeOut(2000);
	}
}

function getProjectAjax(name,dataTable){
         isSended=true;
         var now=new Date().getTime();//加个时间戳表示每次是新的请求
	     $.ajax({
			 type: "POST",
			 url: "companyProject.action?companyName="+name+"&now="+now+"",
			 async: true,
			 dataType: "json",
			 success: function(data){
				//alert($(data.listCompanyProject).length);
				//alert($(data.listCompanyProject)[0].projectName);
				$(dataTable).append("<tr class=\"cen\"><th>项目名称</th><th>项目年度</th><th>项目类型</th><th>申报资金</th><th>核定资金</th><th>拨付资金</th> <th>来源</th></tr>");
				for(i=0;i<$(data.listCompanyProject).length;i++){
					var trs = "<tr  style=\"cursor:pointer;\" οnclick=\"subButton('listform','"+$(data.listCompanyProject)[i].url+"')\">";
					trs+="<td align='left'>"+$(data.listCompanyProject)[i].projectName+" "+"</td>";
					trs+="<td>"+($(data.listCompanyProject)[i].projectYear==null?"":$(data.listCompanyProject)[i].projectYear)+" "+"</td>";
					trs+="<td>"+($(data.listCompanyProject)[i].projectType==null?"":$(data.listCompanyProject)[i].projectType)+" "+"</td>";
					trs+="<td>"+($(data.listCompanyProject)[i].projectFund==null?"":$(data.listCompanyProject)[i].projectFund)+" "+"</td>";
					trs+="<td>"+($(data.listCompanyProject)[i].vouchFund==null?"":$(data.listCompanyProject)[i].vouchFund)+" "+"</td>";
					trs+="<td>"+($(data.listCompanyProject)[i].appFund==null?"":$(data.listCompanyProject)[i].appFund)+" "+"</td>";
					trs+="<td width='8%'>"+$(data.listCompanyProject)[i].fundSource+" "+"</td>";
					trs+="</tr>";
					$(dataTable).append(trs);
			   }
			   $(dataTable).find(".loading").remove();
			    isSended=false;
			 },
			       
			 error: function(XMLHttpRequest, textStatus, errorThrown) {
			    isSended=false;
			    alert("请求失败!");
			 }
		});
}


 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  DJsdk34H4Gbu   2023年11月02日   114   0   0 javascript
  tEcohMEyDsEb   2023年11月02日   99   0   0 JSON跨域上传图片
R0Sx2erBMixA