理解ajax技術,封裝原生 ajax請求

2021-08-15 01:54:28 字數 2155 閱讀 4990

優點:

缺點:

核心:

工作原理:

對比:

1. xmlhtttprequest物件 是ajax技術 的核心

2. xhr物件 的屬性

readystate:返回 請求的狀態(數字格式) 狀態

名稱描述

0uninitialized

初始化狀態:xmlhttprequest 物件已建立 或 已被 abort() 方法重置

1open

請求還沒有被傳送:open() 方法已呼叫,但是 send() 方法未呼叫。

2send

未接收到響應:send() 方法已呼叫,http 請求已傳送到 web 伺服器

3receiving

所有響應頭部都已經接收到 、響應體開始接收但未完成

響應已經完全接收

responsetext:返回 響應體(字串格式)

respon***ml:返回的響應體(xml格式)

status:由伺服器返回的 http 狀態碼(數字格式)

statustext:由伺服器返回的 http 狀態(詳細描述)

3. xhr物件 的方法

open( )初始化http請求,但不傳送請求

作用:

send( )傳送 http 請求(會開啟乙個web 伺服器的網路連線)

作用:

特殊情況:

setrequestheader()設定請求頭

約束:此方法設定請求頭資訊,必須在 呼叫open( )之後 且 呼叫send( )之前

請求頭中包含:

getresponseheader()獲取指定請求頭

getallresponseheaders();獲取所有請求頭

4. xhr物件 的事件

onreadystatechangereadystate 改變時 會觸發 此事件

// 舉例1:jquery 的 ajax 請求如下

$.ajax(, //請求引數

datatype: 'json',

success: (response) =>

});// 舉例2:封裝的 原生ajax 請求如下

function

ajaxmy

(options) = options;

// 處理引數

type = type.touppercase();

datatype = datatype ? datatype : 'json';

let xhr = null;

// 1. 建立 xhr 物件

// 2. 初始化 並 傳送請求

if (type === 'get') =$&`;

}requestparams = requestparams.slice(0, -1);

xhr.open('get', url + requestparams);

xhr.send(null);

} else

if (type === 'post')

// 3. 監聽

xhr.onreadystatechange = () => else }}

}ajaxmy(,

datatype: 'json',

success: (response) =>

});script>

封裝原生ajax

封裝原生ajax四個步驟 類似於手機打 建立xmlhttprequest物件 買手機 開啟與伺服器的連線 撥號 傳送到伺服器 按下撥號鍵 等待伺服器的響應 有可能關機,不在服務區,無人接聽,有人接聽 function ajax obj else data user xiaocuo age 23 if...

原生ajax解析 封裝原生ajax函式

前沿 對於此篇隨筆,完是簡要寫了幾個重要的地方,具體實現細節完在提供的原始碼做了筆記 一 ajax基本要點介紹 更好的介紹ajax 1.ajax物件中new xmlhttprequest 屬性和方法列表 2.常用事件介紹 事件觸發時機 onreadystatechange 當readystate的值...

原生ajax封裝請求

封裝ajax function ajax obj else 2.開啟請求 第乙個引數表示請求方式,值為get post,是字串 第二個引數表示請求的位址 第三個引數是布林值,預設是true表示非同步,false表示同步 xhr.open obj.type,obj.url,obj.async 3.判斷...