Ajax技術細節

Ajax狀況碼xhr.readyState

0:UNSENT 未發送,建立Ajax對象,默許值為0
1:OPENED 實行xhr.open
2:HEADERS_RECEIVED 當前ajax要求已發送,而且已吸收到服務器端返回的相應頭信息
3:LOADING 相應主體內容正在返回
4:DONE 相應主體內容已返回到客戶端

Http收集狀況碼

HTTP收集狀況碼,紀錄當前服務器返回信息的狀況xhr.status

200:標識勝利狀況

3開首也示意勝利,但服務器端做了特別處置懲罰

301:永遠轉移(永遠重定向),應用於域名遷徙
302:暫時轉移(暫時重定向,新版本Http中307是暫時重定向),用於服務器負載平衡
304:從瀏覽器緩存中獵取數據,把不常更新的數據緩存到瀏覽器中

4開首,標識失利狀況,多在客戶端

400:要求參數毛病
401:無權限接見
404:接見地點不存在

5開首,標識失利狀況,多在服務器端

500:Internal Server Error 未知的服務器毛病
503:Service Unavailable 服務器超負載

Ajax經常運用屬性和要領

問題:Ajax中統共支撐幾個要領?

狀況

  1. readyState:存儲當前Ajax狀況碼
  2. response/responseText/responseXML:吸收服務器返回的相應主體內容

    • responseText最經常運用,吸收的效果為字符串花樣(平常服務器返回的數據都是JSON花樣字符串)
    • responseXML吸收XML文檔數據
  3. status:紀錄服務器端返回的HTTP狀況碼
  4. statusText:對返回狀況碼的形貌
  5. timeout:設置當前Ajax要求的超時時候

要領

  1. abort():強迫中綴Ajax要求
  2. getAllResponseHeaders():獵取悉數的相應頭信息(獵取效果為字符串文本)
  3. getResponseHeader(key):獵取指定屬性名的相應頭信息
  4. open():翻開一個URL地點
  5. overrideMimeType():重寫數據的MIME範例
  6. send():發送Ajax要求
  7. setRequestHeader(key,value):設置要求頭信息

事宜

  1. onabort():當Ajax被中綴,要求觸發此事宜
  2. onreadystatechange:Ajax狀況發作轉變,觸發此事宜
  3. ontimeout:當Ajax要求超時,觸發此事宜

JS編碼解碼

(非加密)一般編碼解碼

  1. escape/unescape:把中文漢字舉行編碼解碼(平常只要JS支撐)
  2. encodeURI/decodeURI:基礎一切編程言語都支撐
  3. encodeURIComponent/decodeURIComponent

(加密)編碼解碼

URL問號通報參數,encodeURI不能編碼一些特別字符,只能運用encodeURLComponent處置懲罰

  1. 可逆加密
  2. 不可逆加密(基於MD5加密,能夠會把MD5加密后的效果二次加密)

Ajax的同步和異步

Ajax使命:發送要求吸收到相應主體內容(完全HTTP事件)

  • xhr.send():使命完畢
  • xhr.readyState===4:使命完畢

Ajax類庫的封裝

  • url:要求API地點
  • method:要求體式格局GET/POST
  • dataTpye:預設效果範例,不影響服務器的返回(服務器平常返回JSON花樣字符串),假如預設為json,類庫將服務器返回的字符串轉換為json對象
  • cache:設置是不是消滅緩存,只對GET系列要求有用,默許是TRUE不消滅緩存,手動設置為FALSE,JQ類庫在要求URL的末端追加一個隨機數來清晰緩存
  • data:經由過程DATA把一些信息通報給服務器(GET要求把DATA中的內容拼接在URL的末端經由過程問好傳參的體式格局通報給服務器,POST要求把內容放在要求主體中通報給服務器)(DATA的值能夠設置為兩種花樣:字符串、對象)
  • async:設置同步或異步,默許是TRUE,代表異步,FALSE是同步
  • success:要求勝利實行回調函數,並把獵取的效果作為實參通報給回調函數
  • error:要求毛病觸發還調函數
  • complete:完成,觸發還調函數
    原文作者:whjin
    原文地址: https://segmentfault.com/a/1190000014780377
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞