ajax請求與UI程序阻塞
轉自:http://blog.csdn.net/web_xyk/article/details/52292183
在與後臺實現資料互動時經常會遇到一種這樣的情況:
1.需要用一個ajax請求後臺資料,並且要在獲取到資料之後再渲染到頁面,這個時候就必須用同步(async:false)。
2.然而在這個時候就會有另一種情況,當ajax的請求花費的時間比較長的時候需要一個loading層來顯示等待狀態
3.這個時候beforeSend是沒有效果的,即使把loading的程式碼寫在ajax之前也不行。
4.原因就是ajax的async設定為false時瀏覽器的渲染(UI)執行緒和js執行緒是互斥的,在執行js耗時操作時,頁面渲染會被阻塞掉。當我們執行非同步ajax的時候沒有問題,但當設定為同步請求時,其他的動作(ajax函式後面的程式碼,還有渲染執行緒)都會停止下來。即使我的DOM操作語句是在發起請求的前一句,這個同步請求也會“迅速”將UI執行緒阻塞,不給它執行的時間。這就是程式碼失效的原因。
5.解決方法(注意:是在非同步下實現的):如圖
相關推薦
ajax請求與UI程序阻塞
轉自:http://blog.csdn.net/web_xyk/article/details/52292183 在與後臺實現資料互動時經常會遇到一種這樣的情況: 1.需要用一個ajax請求後臺資料,並且要在獲取到資料之後再渲染到頁面,這個時候就必須用同步(asyn
ajax請求與json數據處理
[ ] data 引入 img mil scrip get 總結 url 一,ajax使用配置 1)使用ajax之前先引入jquery <script type="text/javascript" src="js/jquery-1.8.2.js"><
PHP處理Ajax請求與Ajax跨域
通過 匹配 格式 als 表示 內容 求和 serve -o PHP判斷是否為Ajax請求 我們知道,在發送ajax請求的時候,可以通過XMLHttpRequest這個對象,創建自定義的header頭信息, 在jquery框架中,對於通過它的$.ajax, $.get, 或
ajax請求與瀏覽器快取
在現代Web應用程式中,前端程式碼充斥著大量的Ajax請求,如果對於Ajax請求可以使用瀏覽器快取,那麼可以顯著地減少網路請求,提高程式響應速度。 1. Ajax Request 使用jQuery框架可以很方便的進行Ajax請求,示例程式碼如下: 1 $.ajax({ 2 url
ajax請求 與 REST風格
GET請求: 查詢通常都非同步。除非你依賴於之前的操作結果。async預設為:true。 資料傳送至伺服器的編碼型別contentType預設為:application/x-www-form-urlencoded,key-value的形式能夠滿足GET。 $.ajax(
Ajax請求與表單提交的區別
Form表單提交 <form action="ajaxTest.json" method="post"> <input type="text" name="username"> <input type="pas
原生ajax請求與Promise請求
// 簡單的ajax原生實現 var url = 'https://hq.tigerbrokers.com/fundamental/finance_calendar/getType/2017-02-26/2017-06-10'; var result; var XHR =
jQuery同步Ajax帶來的UI線程阻塞問題及解決辦法
1.5 style ie9 sleep 去掉 是什麽 url 完成 互斥 俗話說不作死就不會死,今天作死了一回,寫了一個比較二逼的函數,遇到了同步Ajax引起的UI線程阻塞問題,在此記錄一下。 事情起因是這樣的,因為頁面上有多個相似的異步請求動作,本著提高代碼可重用性
Ajax中與服務器的通信【發送請求與處理響應】
active 狀態碼 代碼 技術 bsp item 出版 ml2 圖書 一、發送請求 Ajax中通過XMLHttpRequest對象發送異步方式的後臺請求時。通常有兩種方式的請求,一種是GET請求,另一種是POST請求。發送請求一般要經過4個步驟分別是: (1)初始化X
AJAX請求真的不安全麽?談談Web安全與AJAX的關系。
ref spl 返回 erer 頁遊 求和 請求 scripting 資料 開篇三問 AJAX請求真的不安全麽? AJAX請求哪裏不安全? 怎麽樣讓AJAX請求更安全? 前言 本文包含的內容較多,包括AJAX,CORS,XSS,CSRF等內容,要完整的看完並理解需要付出
ajax請求中contentType與dataType區別
服務器 ajax 字符串 解析 div script http 使用 自動 contentType: 告訴服務器,我要發什麽類型的數據,默認值: "application/x-www-form-urlencoded"。 dataType:告訴服務器,我要想什麽類型的數據。如
api接口中ajax數據請求與數據返回的小坑
ajax數據請求 JSON對象和字符串 AJAX 可以使網頁實現異步更新,XMLHttpRequest 是 AJAX 的基礎,大部分瀏覽器均支持 XMLHttpRequest 對象(IE5 和 IE6 使用 ActiveXObject),XMLHttpRequest對象基於HTTP協議用於在後臺與服務
layui彈窗只有在ajax請求結束時之後才關閉,async阻塞
實踐中遇到的坑,在用layui彈窗時,彈窗內容是動態渲染的,在渲染完畢後點擊確定請求ajax,但是我想要在點選確定後出現layui的loading,但是總是ajax請求結束之後才載入loading,原因是我在ajax中使用了async:false;去掉即可 layer.open({
CAS與跨域ajax請求的問題
今天遇到這樣一個問題,A、B兩個應用都是通過CAS單點登入的,在A裡面發起ajax請求到B,存在跨域的問題,我開始試著設定Access-Control-Allow-Origin請求頭,結果發現這樣設定對於一般的跨域請求是可以的,但是因為有CAS,請求到B的時候會去CAS驗證使
如何封裝AJAX請求,這樣方便與後臺做請求互動!
最近在實習的過程中,寫了很多的AJAX請求,由於開發的是CRM系統,所以很多的東西需要與後臺進行請求,所以在前臺頁面少不了要寫很多的AJAX,因為form表單的侷限性,所以在很多情況下是不使用的!由於
vue+axios+element-ui 實現ajax請求攔截和路由攔截
原文連結 https://www.cnblogs.com/parkboyoung/p/6761863.html ajax攔截器: 結合element-ui中loading和message元件來處理的,我們可以單獨建立一個http的js檔案處理axios,再到main.js中引入,統一處理
Python Django 傳送ajax請求實現頁面 收藏 與 取消收藏
1頁面發ajax請求,獲取到 收藏表的 欄位資料 2然後 通過url傳到views函式 這是判斷登入狀態, 3未登入 則點選 返回登入頁面, 4如是登入狀態,則判斷 資料庫裡,收藏表資料,看是否 存在 完全相同的資料, 5如果完全相同,則判斷其收藏狀態,
js原生態跨域請求與ajax中jsonp跨域請求
在web開發中我們經常會說起指令碼的跨域訪問的問題,會出現跨域訪問的限制是因為javascript語言安全限制中的同源策略(same-origin policy )所造成的。 同源策略簡單的說就是一段指令碼只能讀取來自於同一來源的資源,這裡的同一來源指的是主機
ExtJS4 button提交表單請求與直接ajax請求的一點小區別
在今天的編碼過程中我發現button提交請求與直接ajax請求在返回值上有一點小小的差別 看直接ajax Ext.Ajax.request({ url : "../UserSelectAllServlet", method : 'POST', su
SpringMVC配置,簡單例項,檔案上傳與下載,ajax請求
本文基於SpringMVC採用註解方式,從配置到簡單常用的功能舉例詳解,功能已經在本機測試過,能跑起來。 參考資料:iteye部落格; Spring文件; 1、匯入相關jar包: