Ajax同步请求出现浏览器页面假死,阻塞UI线程之解决方案

 ajax 请求数据之前,数据经过复杂处理需要一些时间,浏览器提示当前页面没响应,是否等待或者结束程序。

function loadData()
{ 

 //--------------------第一步                    
 $.ajax({
    url:'${ctx}/EP/getExamType.do', 
	async:false,  --------------------第二步
	type:"post", 
	beforeSend:function(){
		 $("#loading").css("display","");
		 $("#loadingsrc").css("display","");
     },
	success:function(data){
		    	
	    //--------------------第三步
		data =eval('(' + data + ')'); 
		    	 
		//ajax返回成功,清除loading图标
		$("#loading").css("display","none");
	    $("#loadingsrc").css("display","none");; 
    } 
 });   
 //--------------------第四部

}

处理方法,对应上图中的步骤

解决办法:

第一步  加上      var defer = new jQuery.Deferred();

第二步  注释掉  async(或者删除)

第三步  加上     defer.resolve(result)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ajax同步请求和异步请求的区别主要体现在请求的方式和处理的方式上。 同步请求是指在发送请求后,页面会停止加载,直到服务器返回响应结果后才会继续加载。在同步请求中,页面会一直等待响应返回,并且请求和响应是顺序进行的。同步请求的优点是可以确保请求和响应的顺序,但缺点是在等待响应时页面出现卡顿或假死现象,用户体验较差。 异步请求是指在发送请求后,页面可以继续加载,而不会停止等待响应结果。在异步请求中,请求和响应是并行进行的,不会影响页面的加载和用户的操作。异步请求的优点是可以提高页面的响应速度和用户体验,但缺点是无法确保请求和响应的顺序。 在处理方式上,同步请求阻塞浏览器UI线程,用户无法进行其他操作,直到请求完成。而异步请求会在后台进行,不会阻塞浏览器,用户可以继续操作页面。在处理请求结果时,同步请求会直接返回请求的结果,而异步请求需要在回调函数中处理请求的结果。 综上所述,ajax同步请求和异步请求的区别在于请求的方式和处理的方式。同步请求在等待响应时会阻塞页面加载,而异步请求可以在页面加载的同时进行请求同步请求可以确保请求和响应的顺序,但用户体验较差,而异步请求可以提高页面的响应速度和用户体验,但无法确保请求和响应的顺序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值