亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    ajax同步和異步的區(qū)別是什么

    區(qū)別:1、同步中一個(gè)線程要等待上一個(gè)線程執(zhí)行完才能開始執(zhí)行,而異步中一個(gè)線程在執(zhí)行中,下一個(gè)線程不必等待它執(zhí)行完就可以開始執(zhí)行;2、同步是單線程操作,而異步是多線程操作;3、異步的效率要高于同步。

    ajax同步和異步的區(qū)別是什么

    本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

    ajax異步請(qǐng)求:

    異步請(qǐng)求就當(dāng)發(fā)出請(qǐng)求的同時(shí),瀏覽器可以繼續(xù)做任何事,Ajax發(fā)送請(qǐng)求并不會(huì)影響頁面的加載與用戶的操作,相當(dāng)于是在兩條線上,各走各的,互不影響。一般默認(rèn)值為true。異步請(qǐng)求可以完全不影響用戶的體驗(yàn)效果,無論請(qǐng)求的時(shí)間長(zhǎng)或者短,用戶都在專心的操作頁面的其他內(nèi)容,并不會(huì)有等待的感覺。

    比如:

    $.ajax({       type:"POST",      url:"Venue.aspx?act=init",       dataType:"html",      success:function(result){  //function1()        f1();        f2();      }      failure:function (result) {        alert('Failed');       },  }  function2();

    說明:上述代碼中,當(dāng)ajax塊發(fā)出請(qǐng)求后,他將停留function1(),等待server端的返回,但同時(shí)(在這個(gè)等待過程中),前臺(tái)會(huì)去執(zhí)行function2()。

    ajax同步請(qǐng)求:

    同步請(qǐng)求即是當(dāng)前發(fā)出請(qǐng)求后,瀏覽器什么都不能做,必須得等到請(qǐng)求完成返回?cái)?shù)據(jù)之后,才會(huì)執(zhí)行后續(xù)的代碼,相當(dāng)于是排隊(duì),也就是說,當(dāng)JS代碼加載到當(dāng)前ajax的時(shí)候會(huì)把頁面里所有的代碼停止加載,頁面處于一個(gè)假死狀態(tài),當(dāng)這個(gè)ajax執(zhí)行完畢后才會(huì)繼續(xù)運(yùn)行其他代碼頁面解除假死狀態(tài)(即當(dāng)ajax返回?cái)?shù)據(jù)后,才執(zhí)行后面的function)。

    比如:

    $.ajax({       type:"POST",      url:"Venue.aspx?act=init",      dataType:"html",      async: false,    success:function(result){  //function1()        f1();        f2();      }     failure:function (result) {        alert('Failed');       },  }  function2();

    說明:上述代碼中,當(dāng)把a(bǔ)syn設(shè)為false時(shí),這時(shí)ajax的請(qǐng)求時(shí)同步的,也就是說,這個(gè)時(shí)候ajax塊發(fā)出請(qǐng)求后,他會(huì)等待在function1()這個(gè)地方,不會(huì)去執(zhí)行function2(),直到function1()部分執(zhí)行完畢。

    看完了對(duì)于ajax同步與異步請(qǐng)求的意思后,我們就來看看ajax同步請(qǐng)求與異步請(qǐng)求的區(qū)別。

    ajax同步請(qǐng)求與異步請(qǐng)求的區(qū)別:

    同步是指一個(gè)線程要等待上一個(gè)線程執(zhí)行完才能開始執(zhí)行,同步可以看做是一個(gè)單線程操作,只要客戶端請(qǐng)求了,在服務(wù)器沒有反饋信息之前是一個(gè)線程阻塞狀態(tài)。

    異步是一個(gè)線程在執(zhí)行中,下一個(gè)線程不必等待它執(zhí)行完就可以開始執(zhí)行。異步肯定是個(gè)多線程。在客戶端請(qǐng)求時(shí),可以執(zhí)行其他線程,并且在把這個(gè)線程存放在他的隊(duì)列里面,有序的執(zhí)行。

    異步的效率要高于同步。如果數(shù)據(jù)在線程間共享,那么必須使用同步!

    異步模式下:

    當(dāng)我們使用AJAX發(fā)送完請(qǐng)求后,可能還有代碼需要執(zhí)行。這個(gè)時(shí)候可能由于種種原因?qū)е路?wù)器還沒有響應(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ù)器沒有響應(yīng)或者處理響應(yīng)結(jié)果的JS函數(shù)還沒有處理完成return時(shí),包含請(qǐng)求代碼的函數(shù)的剩余代碼是不能夠執(zhí)行的。就好比單線程一樣,請(qǐng)求發(fā)出后就進(jìn)入阻塞狀態(tài),知道接觸阻塞余下的代碼才會(huì)繼續(xù)執(zhí)行。

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

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