欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          什么是ajax同步異步

          ajax同步的意思是當(dāng)JavaScript代碼加載到當(dāng)前ajax的時(shí)候會(huì)把頁(yè)面里所有的代碼加載停止,頁(yè)面處于假死狀態(tài),當(dāng)這個(gè)ajax執(zhí)行完之后,頁(yè)面才會(huì)接觸假死狀態(tài),代碼繼續(xù)運(yùn)行;ajax異步的意思則是當(dāng)前ajax代碼運(yùn)行的時(shí)候其他代碼一樣也可以運(yùn)行。

          什么是ajax同步異步

          本文操作環(huán)境:windows10系統(tǒng)、javascript1.8.5&&html5版、Dell G3電腦。

          什么是ajax同步異步

          (1)同步的意思是當(dāng)JS代碼加載到當(dāng)前AJAX的時(shí)候會(huì)把頁(yè)面里所有的代碼停止加載,頁(yè)面處于假死狀態(tài),當(dāng)這個(gè)AJAX執(zhí)行完后才會(huì)解除頁(yè)面假死狀態(tài),代碼繼續(xù)運(yùn)行。

          (2)而異步則是當(dāng)前AJAX代碼運(yùn)行中的時(shí)候其他代碼一樣可以運(yùn)行。

          jquery的async:false,這個(gè)屬性

          默認(rèn)是true:異步,false:同步。

          示例如下:

          $.ajax({            url: prefix + "/exportById",            data: {ids:ids},            type: 'POST',            traditional: true,            cache:false,             async:false,             success: function (result) {             if (result.code == web_status.SUCCESS) {                   window.location.href = ctx + "common/download?fileName=" + result.msg + "&delete=" + true;                 } else {                              alert("導(dǎo)出失敗");                     }                 }         });

          擴(kuò)展知識(shí)

          AJAX怎么實(shí)現(xiàn)同步請(qǐng)求?

          ajax請(qǐng)求我們分為同步請(qǐng)求和異步請(qǐng)求,但是默認(rèn)的都是異步請(qǐng)求,那么,當(dāng)我們想用ajax同步請(qǐng)求時(shí),我們?cè)撊绾稳?shí)現(xiàn)這個(gè)同步請(qǐng)求呢?接下來(lái)的這篇文章就來(lái)給大家介紹一下關(guān)于ajax同步請(qǐng)求的實(shí)現(xiàn)方式,有需要的朋友可以參考一下,希望會(huì)對(duì)你有所幫助。

          首先我們應(yīng)該知道同步是單一的線程,代碼是按照順序執(zhí)行的,當(dāng)執(zhí)行到j(luò)s代碼加載到當(dāng)前的同步ajax請(qǐng)求的時(shí)候,頁(yè)面的所有其他代碼停止加載,頁(yè)面處于假死狀態(tài),直到該請(qǐng)求執(zhí)行完畢,才會(huì)執(zhí)行繼續(xù)執(zhí)行其他請(qǐng)求。

          其次我們應(yīng)該知道ajax中根據(jù)async的值不同分為同步和異步兩種請(qǐng)求方式,當(dāng)async的值為true時(shí)是異步請(qǐng)求方式,相反的,當(dāng)async的值為false時(shí)是同步請(qǐng)求方式,所以對(duì)于實(shí)現(xiàn)ajax同步請(qǐng)求只需要將async的值設(shè)為false就可以了。

          $.ajax(          type:“POST”/“GET”          url:"",          data:{},          dataType:"json",          async:false,  //同步         success:function(response){               }            );

          Ajax同步和異步請(qǐng)求有什么區(qū)別以及使用場(chǎng)景有哪些?

          理解1:

          AJAX中根據(jù)async的值不同分為同步(async = false)和異步(async = true)兩種執(zhí)行方式;在W3C的教程中推薦使用異步執(zhí)行;

          下面來(lái)區(qū)別一下同步和異步有什么不同:

          異步:在異步模式下,當(dāng)我們使用AJAX發(fā)送完請(qǐng)求后,可能還有代碼需要執(zhí)行。這個(gè)時(shí)候可能由于種種原因?qū)е路?wù)器還沒(méi)有響應(yīng)我們的請(qǐng)求,但是因?yàn)槲覀儾捎昧水惒綀?zhí)行方式,所有包含AJAX請(qǐng)求代碼的函數(shù)中的剩余代碼將繼續(xù)執(zhí)行。如果我們是將請(qǐng)求結(jié)果交由另外一個(gè)JS函數(shù)去處理的,那么,這個(gè)時(shí)候就好比兩條線程同時(shí)執(zhí)行一樣。

          同步:在同步模式下,當(dāng)我們使用AJAX發(fā)送完請(qǐng)求后,后續(xù)還有代碼需要執(zhí)行,我們同樣將服務(wù)器響應(yīng)交由另一個(gè)JS函數(shù)去處理,但是這時(shí)的代碼執(zhí)行情況是:在服務(wù)器沒(méi)有響應(yīng)或者處理響應(yīng)結(jié)果的JS函數(shù)還沒(méi)有處理完成return時(shí),包含請(qǐng)求代碼的函數(shù)的剩余代碼是不能夠執(zhí)行的。就好比單線程一樣,請(qǐng)求發(fā)出后就進(jìn)入阻塞狀態(tài),知道接觸阻塞余下的代碼才會(huì)繼續(xù)執(zhí)行。

          如何選同步還是異步模式?要回答這一問(wèn)題,我們可以通過(guò)下面可能出現(xiàn)的問(wèn)題來(lái)回答:

          我們?cè)诎l(fā)送AJAX請(qǐng)求后,還需要繼續(xù)處理服務(wù)器的響應(yīng)結(jié)果,如果這時(shí)我們使用異步請(qǐng)求模式同時(shí)未將結(jié)果的處理交由另一個(gè)JS函數(shù)進(jìn)行處理。這時(shí)就有可能發(fā)生這種情況:異步請(qǐng)求的響應(yīng)還沒(méi)有到達(dá),函數(shù)已經(jīng)執(zhí)行完了return語(yǔ)句了,這時(shí)將導(dǎo)致return的結(jié)果為空字符串。

          理解2:

          同步: 發(fā)送一個(gè)請(qǐng)求,等待返回,然后再發(fā)送下一個(gè)請(qǐng)求

          異步: 發(fā)送一個(gè)請(qǐng)求,不等待返回,隨時(shí)可以再發(fā)送下一個(gè)請(qǐng)求

          同步可以避免出現(xiàn)死鎖,讀臟數(shù)據(jù)的發(fā)生,一般共享某一資源的時(shí)候用,如果每個(gè)人都有修改權(quán)限,同時(shí)修改一個(gè)文件,有可能使一個(gè)人讀取另一個(gè)人已經(jīng)刪除的內(nèi)容,就會(huì)出錯(cuò),同步就會(huì)按順序來(lái)修改。

          異步則是可以提高效率了,現(xiàn)在cpu都是雙核,四核,異步處理的話可以同時(shí)做多項(xiàng)工作,當(dāng)然必須保證是可以并發(fā)處理的。

          同步和異步最大的區(qū)別就在于。一個(gè)需要等待,一個(gè)不需要等待。

          比如發(fā)短信,就是一個(gè)異步例子。發(fā)起者不關(guān)心接收者的狀態(tài)。不需要等待接收者的返回信息,則可以進(jìn)行下一次發(fā)送。

          電話,就是一個(gè)同步例子。發(fā)起者需要等待接收者,接通電話后,通信才開(kāi)始。需要等待接收者的返回信息

          而我們平時(shí)經(jīng)常討論的同步問(wèn)題多發(fā)生在多線程環(huán)境中的數(shù)據(jù)共享問(wèn)題。即當(dāng)多個(gè)線程需要訪問(wèn)同一個(gè)資源時(shí),它們需要以某種順序來(lái)確保該資源在某一特定時(shí)刻只能被一個(gè)線程所訪問(wèn),如果使用異步,程序的運(yùn)行結(jié)果將不可預(yù)料。因此,在這種情況下,就必須對(duì)數(shù)據(jù)進(jìn)行同步,即限制只能有一個(gè)進(jìn)程訪問(wèn)資源,其他線程必須等待。

          實(shí)現(xiàn)同步的機(jī)制主要有臨界區(qū)、互斥、信號(hào)量和事件

          臨界區(qū):通過(guò)對(duì)多線程的串行化來(lái)訪問(wèn)公共資源或一段代碼,速度快,適合控制數(shù)據(jù)訪問(wèn)。在任意時(shí)刻只允許一個(gè)線程對(duì)共享資源進(jìn)行訪問(wèn),如果有多個(gè)線程試圖訪問(wèn)公共資 源,那么在有一個(gè)線程進(jìn)入后,其他試圖訪問(wèn)公共資源的線程將被掛起,并一直等到進(jìn)入臨界區(qū)的線程離開(kāi),臨界區(qū)在被釋放后,其他線程才可以搶占。

          互斥量:采用互斥對(duì)象機(jī)制。 只有擁有互斥對(duì)象的線程才有訪問(wèn)公共資源的權(quán)限,因?yàn)榛コ鈱?duì)象只有一個(gè),所以能保證公共資源不會(huì)同時(shí)被多個(gè)線程訪問(wèn)?;コ獠粌H能實(shí)現(xiàn)同一應(yīng)用程序的公共資源安全共享,還能實(shí)現(xiàn)不同應(yīng)用程序的公共資源安全共享 .互斥量比臨界區(qū)復(fù)雜。因?yàn)槭褂没コ獠粌H僅能夠在同一應(yīng)用程序不同線程中實(shí)現(xiàn)資源的安全共享,而且可以在不同應(yīng)用程序的線程之間實(shí)現(xiàn)對(duì)資源的安全共享。

          信號(hào)量:它允許多個(gè)線程在同一時(shí)刻訪問(wèn)同一資源,但是需要限制在同一時(shí)刻訪問(wèn)此資源的最大線程數(shù)目 。信號(hào)量對(duì)象對(duì)線程的同步方式與前面幾種方法不同,信號(hào)允許多個(gè)線程同時(shí)使用共享資源,這與操作系統(tǒng)中的PV操作相同。它指出了同時(shí)訪問(wèn)共享資源的線程最大數(shù)目。它允許多個(gè)線程在同一時(shí)刻訪問(wèn)同一資源,但是需要限制在同一時(shí)刻訪問(wèn)此資源的最大線程數(shù)目。

          事件:通過(guò)通知操作的方式來(lái)保持線程的同步,還可以方便實(shí)現(xiàn)對(duì)多個(gè)線程的優(yōu)先級(jí)比較的操作 。

          【相關(guān)教程推薦:AJAX視頻教程】

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)