1. 程式人生 > >Ajax中的async的取值(非同步和同步)

Ajax中的async的取值(非同步和同步)

之前去面試廣州科騰公司時,面試官問了一個問題—ajax的async取值的理解。那時候的我可以說是個死菜鳥(現在可能是個半死不活的菜鳥),只是理解取值的字面意思,最後還要面試官給我解釋。雖然面試肯定是掛了,但是至少面試官教了我點東西,也不虧了對吧。言歸正傳了。
ajax的open方法的第三個引數是async的取值,分別有true和false。true表示是非同步模式,false表示同步模式。
首先要明確一點,ajax在全域性環境中是非同步模式的 ,async講的是ajax請求內部的同異步。
對於同步模式,如果ajax發出請求(send方法呼叫後),後續還有程式碼執行,此時如果伺服器響應不及時(也就是此時ajax的請求程式碼還沒有全部執行完成),後續的程式碼不會執行(此時頁面出現假死狀態,此時也不用考慮程式碼的執行順序)。此時就會出現阻塞狀態。
對於非同步模式,一般多用非同步模式。如果ajax執行完send後,後續還有程式碼需要執行,此時伺服器響應不夠及時,後續的程式碼還是會繼續執行。不會出現阻塞現象
既然非同步比較好,那為什麼會有同步這個選項呢。這也是那個面試官問我的問題之一。答案是,因為如果ajax執行完send後,後續的程式碼是有關於響應結果的處理,那如果是非同步請求,則如果此時伺服器的響應結果還沒回來,那麼後續有關於響應結果的處理就會出現錯誤(return null)。此時是一定要用同步的。

—–有不同意見歡迎留言改正000000

相關推薦

Ajaxasync非同步同步

之前去面試廣州科騰公司時,面試官問了一個問題—ajax的async取值的理解。那時候的我可以說是個死菜鳥(現在可能是個半死不活的菜鳥),只是理解取值的字面意思,最後還要面試官給我解釋。雖然面試肯定是掛了,但是至少面試官教了我點東西,也不虧了對吧。言歸正傳了。

jq獲取trtd的forEach遍歷

<table border="1">        <tr>            <td>編號</td>     

介紹vue專案的axios請求getpost

一、先安裝axios依賴,還有qs依賴 npm install axios --save npm install qs --save qs依賴包用post請求需要用到的 插入一個知識點: npm install X --save 會把依賴包安裝在生產環境中,並且把依賴包名稱新增到 package

Linux檢視系統版本核心發行、CPU資訊以及修改主機名

檢視cpu資訊        cat /proc/cpuinfo   檢視系統與核心相關資訊        Uname [選項]  &nbs

iOS開發的記憶體分配

程序的記憶體分割槽 所有程序(執行的程式)都必須佔用一定數量的記憶體,它或是用來存放從磁碟載入的程式程式碼,或是存放取自使用者輸入的資料等等。不過程序對這些記憶體的管理方式因記憶體用途不一而不盡相同,有些記憶體是事先靜態分配和統一回收的,而有些卻是按需要動態分配和回收的

JAVA陣列的記憶體

JAVA對記憶體空間的劃分 五部分:棧 堆 方法區 本地方法區 暫存器 今天主要談棧和堆 棧記憶體:儲存的都是區域性變數。 只要是在方法中定義的變數都是區域性變數,一旦變數的生命週期結束,該變數就被釋放。 (壓棧彈棧 balabalabala) 堆記

Android的人臉檢測靜態動態

(1)背景。        Google 於2006年8月收購Neven Vision 公司 (該公司擁有10多項應用於移動裝置領域的影象識別的專利),以此獲得了影象識別的技術,並加入到android中。Android 中的人臉識別技術,用到的底層庫:android/ex

在matlab如何將圖片pngjpg轉成mat格式

在這裡就要介紹兩個函數了,具體的可以在matlab裡面的參考,一個是imread、imwrite和imshow函式,這幾個函式看了以後基本就可以明白了,具體的也很簡單。比如 I = imread('C:\Users\Administrator\Desktop\patches11.jpg');

Qt:計算CRC校驗CRC16CRC32

CRC有非常多的模式,我沒有全部都做,目前支援 CRC16-Modbus CRC16-X25 CRC32 使用方法 auto data = QByteArray::fromHex( "01

Mybatis自動生成keyselectKeyuseGeneratedKeys

insert和update操作中會常常用到自動生成主鍵的問題。 selectKey和useGeneratedKeys屬性 useGeneratedKeys (insert and update only) This tells

jenkins pipeline程式碼svn或git

pipeline是jenkins2.0的核心特性,作為一個運維小白,最近在學習jenkins,做一些小的demo。 關於從svn或者git中拉取程式碼,我們可以通過Pipeline Syntax來生成。Pipeline Syntax算是一個很全的文件,閒著沒事可以把裡面的每

有無C標籤在JSP頁面的兩種方式

<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ page import="java.util.*" %> &

神經網路的BP演算法原理推導

BP演算法介紹 BP演算法(Background Propagation Alogorithm), 即誤差逆傳播演算法,是訓練多層前饋神經網路的一種最經典的演算法,通過BP演算法可以學得網路的權重和閾值,且具有可靠的收斂性。 網路結構 首先對所用的符號和變

easyui.utils.js 自己封裝的 使用easyui過程方便操作

注意:該easyui.utils.js  會在我自己使用過程中不斷完善,大家一起進步。 在js上新增 以下 (function($){   function  其他方法。 })(jQuery); 的目的是為了防止該js檔案中的function與瀏覽器本身的一些functi

ajaxasync同步非同步的區別使用技巧

在網上看了很多關於ajax中同步和非同步的區別,這個同步的意思是當JS程式碼載入到當前AJAX的時候會把頁面裡所有的程式碼停止載入,頁面出去假死狀態,當這個AJAX執 行完畢後才會繼續執行其他程式碼頁

ajaxasync的truefalse

  先彈出success,再彈出after click 先彈出after click,再彈出success   屬性async用於控制同步和非同步,預設是true,即ajax請求預設是非同步請求,有時專案中會用到AJAX同步。這個同步的意思是當JS程式碼載入

卷積運算的兩種padding的,VALIDSAME

模板來源於(https://blog.csdn.net/wuzqchom/article/details/74785643) 加入了一些自己的理解 在用tensorflow寫CNN的時候,呼叫卷積核api的時候,會有填padding方式的引數,找到原始碼中的函式定義如下(max pooling也

Ajax應用serialize()提交Form表單及後端Java

<script type="text/javascript"> $(document).ready(function(){ $("#modifyForm").submit(function(e){ $("#submitButton").attr('disabled',"

java/求餘

                1.取整運算子 取整從字面意思理解就是被除數到底包含幾個除數,也就是能被整

爬蟲學習之18:使用seleniumchrome-headerless爬淘寶網商品資訊非同步載入網頁

       登入淘寶網,使用F12鍵觀察網頁結構,會發現淘寶網也是非同步載入網站。有時候通過逆向工程區爬取這類網站也不容易。這裡使用selenium和chrome-headerless來爬取。網上有結合selenium和PlantomJS來爬取的,但是最新版的Seleniu