欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:前端 AJAX總結(jié)

柚子快報(bào)激活碼778899分享:前端 AJAX總結(jié)

http://yzkb.51969.com/

AJAX

1、什么是Ajax

ajax 全名 async javascript and XML(異步JavaScript和XML)

是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)

是前后臺(tái)交互的能? 也就是我們客戶端給服務(wù)端發(fā)送消息的?具,以及接受響應(yīng)的?具

AJAX 不是新的編程語言,而是一種使用現(xiàn)有標(biāo)準(zhǔn)的新方法。

AJAX 是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的藝術(shù),在不重新加載整個(gè)頁面的情況下。

是?個(gè) 默認(rèn)異步執(zhí)?機(jī)制的功能,AJAX分為同步(async = false)和異步(async = true)

2、同步與異步的區(qū)別

什么是同步請(qǐng)求?(false)

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

什么是異步請(qǐng)求?(默認(rèn):true)

默認(rèn)異步:異步請(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í)間長或者短,用戶都在專心的操作頁面的其他內(nèi)容,并不會(huì)有等待的感覺。

3.AJAX 的優(yōu)勢(shì)

不需要插件的?持,原? js 就可以使? ?戶體驗(yàn)好(不需要刷新??就可以更新數(shù)據(jù)) 減輕服務(wù)端和帶寬的負(fù)擔(dān) 缺點(diǎn):搜索引擎的?持度不夠,因?yàn)閿?shù)據(jù)都不在??上,搜索引擎搜索不到

4.實(shí)現(xiàn)AJAX的基本步驟

要完整實(shí)現(xiàn)一個(gè)AJAX異步調(diào)用和局部刷新,通常需要以下幾個(gè)步驟:

創(chuàng)建XMLHttpRequest對(duì)象,即創(chuàng)建一個(gè)異步調(diào)用對(duì)象. 創(chuàng)建一個(gè)新的HTTP請(qǐng)求,并指定該HTTP請(qǐng)求的方法、URL及驗(yàn)證信息. 設(shè)置響應(yīng)HTTP請(qǐng)求狀態(tài)變化的函數(shù). 發(fā)送HTTP請(qǐng)求. 獲取異步調(diào)用返回的數(shù)據(jù). 使用JavaScript和DOM實(shí)現(xiàn)局部刷新.

5.AJAX 的使用

在 js 中有內(nèi)置的構(gòu)造函數(shù)來創(chuàng)建 ajax 對(duì)象

創(chuàng)建 ajax 對(duì)象以后,我們就使? ajax 對(duì)象的?法去發(fā)送請(qǐng)求和接受響應(yīng)

Ajax的一個(gè)最大的特點(diǎn)是無需刷新頁面便可向服務(wù)器傳輸或讀寫數(shù)據(jù)(又稱無刷新更新頁面),這一特點(diǎn)主要得益于XMLHTTP組件XMLHTTPRequest對(duì)象。?

XMLHttpRequest 對(duì)象方法描述

1.創(chuàng)建?個(gè) ajax 對(duì)象

?const xhr = new XMLHttpRequest()

上?就有了?個(gè) ajax 對(duì)象 我們就可以使?這個(gè) xhr 對(duì)象來發(fā)送 ajax 請(qǐng)求了

2.配置鏈接信息

XMLHttpRequest 對(duì)象屬性描述(用于和服務(wù)器交換數(shù)據(jù))

?const xhr = new XMLHttpRequest()

?// xhr 對(duì)象中的 open ?法是來配置請(qǐng)求信息的

?// 第?個(gè)參數(shù)是本次請(qǐng)求的請(qǐng)求?式 get / post / put / ...

?// 第?個(gè)參數(shù)是本次請(qǐng)求的 url

?// 第三個(gè)參數(shù)是本次請(qǐng)求是否異步,默認(rèn) true 表示異步,false 表示同步

?// xhr.open('請(qǐng)求?式', '請(qǐng)求地址', 是否異步)

?xhr.open('get', './data.php')

上?的代碼執(zhí)?完畢以后,本次請(qǐng)求的基本配置信息就寫完了

3.發(fā)送請(qǐng)求

?//如需將請(qǐng)求發(fā)送到服務(wù)器,我們使用 XMLHttpRequest 對(duì)象的 open() 和 send() 方法:

?const xhr = new XMLHttpRequest()

?xhr.open('get', './data.php')

?// 使? xhr 對(duì)象中的 send ?法來發(fā)送請(qǐng)求

?xhr.send()

上面代碼是把配置好信息的 ajax 對(duì)象發(fā)送到服務(wù)端

一個(gè)最基本的 ajax 請(qǐng)求就是上面三步 但是光有上面的三個(gè)步驟,我們確實(shí)能把請(qǐng)求發(fā)送到服務(wù)端 如果服務(wù)端正常的話,響應(yīng)也能回到客戶端 但是我們拿不到響應(yīng) 如果想要拿到響應(yīng),我們需要有兩個(gè)前提條件

本次 HTTP 請(qǐng)求是成功的,也就是我們下面要說的 http 狀態(tài)碼為 200 ~ 299 ajax 對(duì)象也有自己的狀態(tài)碼,用來表示本次 ajax 請(qǐng)求中各個(gè)階段

6.AJAX 狀態(tài)碼

ajax 狀態(tài)碼 - xhr.readyState 是用來表示一個(gè) ajax 請(qǐng)求的全部過程中的某一個(gè)狀態(tài)

?readyState === 0 : 表示未初始化完成,也就是 open 方法還沒有執(zhí)行

?readyState === 1 : 表示配置信息已經(jīng)完成,也就是執(zhí)行完 open 之后

?readyState === 2 : 表示 send 方法已經(jīng)執(zhí)行完成

?readyState === 3 : 表示正在解析響應(yīng)內(nèi)容

?readyState === 4 : 表示響應(yīng)內(nèi)容已經(jīng)解析完畢,可以在客戶端使用了

這個(gè)時(shí)候我們就會(huì)發(fā)現(xiàn),當(dāng)一個(gè) ajax 請(qǐng)求的全部過程中,只有當(dāng) readyState === 4 的時(shí)候,我們才可以正常使用服務(wù)端給我們的數(shù)據(jù) 所以,配合 http 狀態(tài)碼為 200 ~ 299

? 一個(gè) ajax 對(duì)象中有一個(gè)成員叫做 xhr.status

? 這個(gè)成員就是記錄本次請(qǐng)求的 http 狀態(tài)碼的

兩個(gè)條件都滿足的時(shí)候,才是本次請(qǐng)求正常完成

readyStateChange

在 ajax 對(duì)象中有一個(gè)事件,叫做 readyStateChange 事件 這個(gè)事件是專?用來監(jiān)聽 ajax 對(duì)象的 readyState 值改變的的行為 也就是說只要 readyState 的值發(fā)生變化了,那么就會(huì)觸發(fā)該事件 所以我們就在這個(gè)事件中來監(jiān)聽 ajax 的 readyState 是不是到 4 了

? const xhr = new XMLHttpRequest()

? ? xhr.open('get', './data.php')

? xhr.send()

? xhr.onreadyStateChange = function () {

? // 每次 readyState 改變的時(shí)候都會(huì)觸發(fā)該事件

? // 我們就在這里判斷 readyState 的值是不是到 4

? // 并且 http 的狀態(tài)碼是不是 200 ~ 299

? if (xhr.readyState === 4 && /^2\d{2|$/.test(xhr.status)) {

? // 這里表示驗(yàn)證通過

? // 我們就可以獲取服務(wù)端給我們響應(yīng)的內(nèi)容了

? ? }

?}

使用 ajax 發(fā)送請(qǐng)求時(shí)攜帶參數(shù)

我們使用 ajax 發(fā)送請(qǐng)求也是可以攜帶參數(shù)的 參數(shù)就是和后臺(tái)交互的時(shí)候給他的一些信息 但是攜帶參數(shù) get 和 post兩個(gè)方式還是有區(qū)別的

GET 還是 POST?

與 POST 相比,GET 更簡單也更快,并且在大部分情況下都能用。 然而,在以下情況中,請(qǐng)使用 POST 請(qǐng)求:

? 無法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫)

? 向服務(wù)器發(fā)送大量數(shù)據(jù)(POST 沒有數(shù)據(jù)量限制)

? 發(fā)送包含未知字符的用戶輸入時(shí),POST 比 GET 更穩(wěn)定也更可靠

柚子快報(bào)激活碼778899分享:前端 AJAX總結(jié)

http://yzkb.51969.com/

推薦文章

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19199300.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄