Ajax同步和非同步上問題的處理
Ajax在處理上的問題
2020年10月9號,今天在Ajax同步和非同步問題上花費了大量的事件和精力,也收穫到了一點點經驗。
同步
把async改成false時候ajax請求變成同步,導致我的頁面出現假死,如果在beforeSend中
加Alert,是有在執行的,但是無法彈出我的遮蔽層。
原因如下
JQ 在1.5版本之前 設定成同步的時候,頁面會出現假死現象,導致beforeSeed呼叫渲染頁面失敗
假死原因: 瀏覽器的渲染(UI)執行緒和js執行緒是互斥的,在執行js耗時操作時,頁面渲染會被阻塞掉。
當我們執行非同步ajax的時候沒有問題,但當設定為同步請求時,其他的動作(ajax函式後面的程式碼,還有渲染執行緒)都會停止下來。
解決方法
一開始我查閱了一下網上的資料
地址:https://blog.csdn.net/qq_40259641/article/details/82774777
但是我感覺如果換JQ版本,換了也不知道能否成功,我還是先從簡單一點的把方法改成非同步就好了。改完之後好了,之前的js事件沒了反應。怎麼狂按Enter沒有反應?弄得我抓狂了,好了,又要去百度了
JS失效的原因
網上查詢原因是
如果直接這樣子寫 ,直接繫結在dom元素上,說頁面重新整理替換了dom元素之後,就不認識了
真TM神奇,總感覺洗了澡之後就不是我了!那沒辦法只好換一種繫結方式。
解決辦法
網上說:是事件代理或者叫事件委託,事件繫結的元素並不是觸發的元素,而是其父(祖宗)元素,這時候只要父元素沒被替換掉,子元素不管怎麼替換,只要符合開始繫結的選擇器,就可以觸發。
感言
這是我的第一篇blog,其實一路工作學習,過來。肯定會遇到不少的問題,但一直也沒有寫blog只是通過電腦文字記錄一下,或則是收藏一下別人寫的好並且也解決了自己問題的blog。為什麼選擇在做前端技術的時候寫,其實我是一名後端程式設計師,在一家小公司,前端的妹子走了,問題分發到我身上一開始挺覺得苦惱的,明明後端已經有很多東西要學習了,還要分精力學習前端的內容。但是沒辦法任務到手,不能不做,通過幾天上班時候接觸,夜間自己開小灶。越發覺得謝謝html,css,js挺有意思的,起碼讓我覺得寫錯了除錯起來快很多。當然還有一個重點感悟 通過程式設計,你會表現解決方法的方式有很多,一種不行用第二種,第二種不行用第三種。當思考的多了,查詢得多了。任務完成過後你會發現其實123種方法都可以,只是能力尚不夠。