Ajax同步请求出现浏览器页面假死,阻塞UI线程之解决方案
生活随笔
收集整理的這篇文章主要介紹了
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);
第四步? 加上 ? ??return defer;
function loadDate() {var defer = new jQuery.Deferred();//統計圖一餅裝圖$.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圖標$("#loading").css("display","none");$("#loadingsrc").css("display","none");; } }); return defer; }?
總結
以上是生活随笔為你收集整理的Ajax同步请求出现浏览器页面假死,阻塞UI线程之解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 吞吐率,QPS/TPS/并发量/
- 下一篇: 【Linux操作系统】常用指令(三)