面試官:給我說說什麼是同步異步?

今天是劉小愛自學Java的第95天。web

感謝你的觀看,謝謝你。面試

話很少說,開始今天的學習:json

1、同步、異步請求

瀏覽器發送請求給服務器,其有同步請求和異步請求兩種方式。api

1同步請求數組

什麼叫同步請求呢?瀏覽器

就是在發送一個請求以後,須要等待服務器響應返回,纔可以發送下一個請求。服務器

以前學的請求是經過瀏覽器地址欄發送請求,這種方式就是屬於同步請求。網絡

可是其有兩個缺陷:異步

①請求必需要等待響應async

若是遇到請求阻塞,網絡延遲,用戶須要等待,這樣用戶體驗效果很差。

②請求時會攜帶全部的信息

好比說一個form表單,須要填入用戶名,密碼,手機號,等多個信息。

若是其中有一個信息填寫錯了,請求失敗,又要所有從新填寫,會很麻煩繁瑣。

我只填寫我填錯了的不就行了麼?

如何解決這個問題?就須要引入異步的概念了。

2異步請求

和同步請求相對,異步不須要等待響應,隨時能夠發送下一次請求。

若是是同步請求,須要將信息填寫完整,再發送請求,服務器響應填寫是否正確,再作修改。

可是異步請求是局部頁面更新。

好比上述的手機號、密碼,郵箱名,在填寫時就會發送一個異步請求。

如果格式不正確,會提醒修改,而其它已經填寫的正確信息不受影響。

2、原生的Ajax

什麼叫Ajax呢?

說白了就是用來發送異步請求的一種方式。

先寫一個異步請求案例,再逐步學習。

有一個按鈕,給它註冊個點擊事件,點擊就發送異步請求,其具體實現方式共五步:

①建立XMLHttpRequest

XMLHttpRequest是AJAX的基礎。

Ajax就是經過XMLHttpRequest這個對象來發送異步請求的。

②onreadystatechange事件

不要看這一大串這麼長,翻譯過來就是當前數據源的數據將要發生變化時,就能夠理解成監聽

這個事件就是實現異步請求的核心關鍵。

爲何異步請求能夠不用等待響應?

就是由於這兒設置了一個監聽事件。

服務器被監聽,一旦readyState爲4而且status爲200,代表響應成功。

這些屬性都是怎麼來的,w3c文檔中就有說明:

readyState和status都對應有不一樣的數值,只不過4和200表示響應成功。

③綁定提交地址

open()方法,其有三個參數:

  • method:即請求方式,例子中是GET請求。
  • url:請求路徑,"/getAjaxServlet"。
  • async:true表示爲異步、false表示爲同步,不寫默認爲true。

④發送請求

send()方法,將請求發送到服務器。

一樣的道理,這些方法在w3c文檔中也有詳細說明。

⑤接收響應數據

也就是在②中判斷響應成功時,接受響應的數據,有兩種屬性:

  • responseText :獲取字符串形式的數據。
  • responseXML:獲取XML形式的數據。

若是不是XML數據,都使用responseText。

以上就是原生的Ajax,固然實際使用過程當中不會這樣用,可是面試時可能會被問到。

而且這是基礎,學一下也是有必要的。

3、JSON

JSON是一種輕量級的數據交換格式,具備良好的可讀性以及便於編寫。

在JSON以前通常都是使用xml來傳遞數據的,將這兩種數據格式作一個對比:

相比較而言:json數據更加地簡潔。

固然XML也並非一無可取,其格式統一,就觀感而言也有人更喜歡xml這種排版方式。

而且XML出來了好久了,推廣深刻人心,通用性高,喜歡XML的人仍是挺多的。

可是對於傳輸數據來講,數據是否容易被解析?這是很是重要的。

而json相對於xml而言就具備這樣的優點,故在這一塊更加地經常使用。

Json的基礎語法

一共有三種數據格式,分別說明:

①對象類型

格式爲:{name:value,name:value……}

以鍵值對的方式存儲數據,能夠有多個鍵值對,鍵值對之間用逗號隔開。

其中name爲字符串類型,而value是任意類型。

②數組/集合類型

格式爲:[value,value......]

其中value是任意類型。

和數組就很相似,只不過是使用中括號將數據包裹起來的。

③混合類型

即包含對象類型和數組類型。

值得注意的是:

  • JSON數據的key值:字符串類型,必須加雙引號。
  • JSON數據的value值:任意類型,若是是字符串則必須加雙引號。

時間有限,其中關於json還有一些api就不作專門講解了,從此使用到了邊記邊學就行了。

最後

謝謝你的觀看。

若是能夠的話,麻煩幫忙點個贊,謝謝你。

相關文章
相關標籤/搜索