您好,登錄后才能下訂單哦!
這篇文章主要介紹“ajax默認(rèn)提交方式是什么”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強(qiáng),希望這篇“ajax默認(rèn)提交方式是什么”文章能幫助大家解決問題。
ajax默認(rèn)是異步提交;AJAX中根據(jù)async值的不同分為同步“false”和異步“true”,而默認(rèn)情況下async值是true(異步提交)。這樣做的好處就是能夠通過局部刷新的方式提高用戶的體驗,同時還能節(jié)省資源,減少數(shù)據(jù)庫的壓力。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
ajax默認(rèn)提交方式是異步提交,這樣做的好處就是能夠通過局部刷新的方式提高用戶的體驗,同時還能節(jié)省資源,減少數(shù)據(jù)庫的壓力。
AJAX中根據(jù)async的值不同分為同步(async = false)和異步(async = true)
$.ajax({ type: "post", url: "path", cache:false, async:false, dataType: ($.browser.msie) ? "text" : "xml", success: function(xmlobj){ function1(){}; } }); function2(){};
默認(rèn)情況下async是true(異步提交)。
改成同步的方法就是將async的默認(rèn)值改成false,一般都是true或者不寫,如果改成false就會失去ajax的本身作用。
一、什么是同步請求:(false)
同步請求即是當(dāng)前發(fā)出請求后,瀏覽器什么都不能做,必須得等到請求完成返回數(shù)據(jù)之后,才會執(zhí)行后續(xù)的代碼,相當(dāng)于是排隊,前一個人辦理完自己的事務(wù),下一個人才能接著辦。也就是說,當(dāng)JS代碼加載到當(dāng)前AJAX的時候會把頁面里所有的代碼停止加載,頁面處于一個假死狀態(tài),當(dāng)這個AJAX執(zhí)行完畢后才會繼續(xù)運行其他代碼頁面解除假死狀態(tài)(即當(dāng)ajax返回數(shù)據(jù)后,才執(zhí)行后面的function2)。
二、什么是異步請求:(true)
異步請求就當(dāng)發(fā)出請求的同時,瀏覽器可以繼續(xù)做任何事,Ajax發(fā)送請求并不會影響頁面的加載與用戶的操作,相當(dāng)于是在兩條線上,各走各的,互不影響。
一般默認(rèn)值為true,異步。異步請求可以完全不影響用戶的體驗效果,無論請求的時間長或者短,用戶都在專心的操作頁面的其他內(nèi)容,并不會有等待的感覺。
同步和異步有什么不同:
異步:在異步模式下,當(dāng)我們使用AJAX發(fā)送完請求后,可能還有代碼需要執(zhí)行。這個時候可能由于種種原因?qū)е?a title="服務(wù)器" target="_blank" href="http://kemok4.com/">服務(wù)器還沒有響應(yīng)我們的請求,但是因為我們采用了異步執(zhí)行方式,所有包含AJAX請求代碼的函數(shù)中的剩余代碼將繼續(xù)執(zhí)行。如果我們是將請求結(jié)果交由另外一個JS函數(shù)去處理的,那么,這個時候就好比兩條線程同時執(zhí)行一樣。
同步:在同步模式下,當(dāng)我們使用AJAX發(fā)送完請求后,后續(xù)還有代碼需要執(zhí)行,我們同樣將服務(wù)器響應(yīng)交由另一個JS函數(shù)去處理,但是這時的代碼執(zhí)行情況是:在服務(wù)器沒有響應(yīng)或者處理響應(yīng)結(jié)果的JS函數(shù)還沒有處理完成return時,包含請求代碼的函數(shù)的剩余代碼是不能夠執(zhí)行的。就好比單線程一樣,請求發(fā)出后就進(jìn)入阻塞狀態(tài),知道接觸阻塞余下的代碼才會繼續(xù)執(zhí)行。
看以下代碼:
var flag=true; var index=0; $.ajax({ url: "", success: function(data){ flag=false; } }); while(flag){ index++; } alert(index);
最終程序進(jìn)入了一個死循環(huán)
看以下代碼:
var flag=true; $.ajax({ url: "", success: function(data){ flag=false; } }); alert(flag);
最終結(jié)果是true
js是單線程的,由于執(zhí)行ajax請求會消耗一定的時間,甚至出現(xiàn)了網(wǎng)絡(luò)故障而遲遲得不到返回結(jié)果;這時,如果同步執(zhí)行的話,就必須等到ajax返回結(jié)果以后才能執(zhí)行接下來的代碼,如果ajax請求需要1分鐘,程序就得等1分鐘。如果是異步執(zhí)行的話,在等在server端返回的這個過程中,前臺會會繼續(xù)執(zhí)行ajax塊后面的腳本,直到server端返回正常的結(jié)果才會執(zhí)行success,這時候執(zhí)行的是兩個線程,ajax塊發(fā)出請求后一個線程和ajax塊后面腳本
var flag=true; var index=0; $.ajax({ url: "", async:false, success: function(data){ flag=false; } }); while(flag){ index++; } alert(index);
最終結(jié)果是0
關(guān)于“ajax默認(rèn)提交方式是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。