Ajax同步请求出现浏览器页面假死,阻塞UI线程之解决方案
生活随笔
收集整理的這篇文章主要介紹了
Ajax同步请求出现浏览器页面假死,阻塞UI线程之解决方案
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?ajax 請求數(shù)據(jù)之前,數(shù)據(jù)經(jīng)過復(fù)雜處理需要一些時(shí)間,瀏覽器提示當(dāng)前頁面沒響應(yīng),是否等待或者結(jié)束程序。
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圖標(biāo)$("#loading").css("display","none");$("#loadingsrc").css("display","none");; } }); //--------------------第四部}處理方法,對應(yīng)上圖中的步驟
解決辦法:
第一步? 加上 ? ? ?var defer = new jQuery.Deferred();
第二步? 注釋掉 ?async(或者刪除)
第三步? 加上 ? ??defer.resolve(result);
第四步? 加上 ? ??return defer;
function loadDate() {var defer = new jQuery.Deferred();//統(tǒng)計(jì)圖一餅裝圖$.ajax({url:'${ctx}/EP/getExamType.do', // async:false, type:"post", beforeSend:function(){$("#loading").css("display","");$("#loadingsrc").css("display","");},success:function(data){defer.resolve(data);data =eval('(' + data + ')'); //ajax返回成功,清除loading圖標(biāo)$("#loading").css("display","none");$("#loadingsrc").css("display","none");; } }); return defer; }?
總結(jié)
以上是生活随笔為你收集整理的Ajax同步请求出现浏览器页面假死,阻塞UI线程之解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 吞吐率,QPS/TPS/并发量/
- 下一篇: html 字体特效在线,盘点那些惊艳的H