摘要:如果我們假設(shè)文件和文件位于相同的目錄,那么代碼是這樣的其他方法如下編程步驟創(chuàng)建對(duì)象設(shè)置請(qǐng)求方式調(diào)用回調(diào)函數(shù)發(fā)送請(qǐng)求處理返回的結(jié)果創(chuàng)建對(duì)象一般來(lái)說(shuō)手寫的時(shí)候,首先需要判斷該瀏覽器是否支持對(duì)象,如果支持則創(chuàng)建該對(duì)象,如果不支持則創(chuàng)建對(duì)象。
Ajax的簡(jiǎn)介 什么是Ajax
AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)。
AJAX 不是新的編程語(yǔ)言,而是一種使用現(xiàn)有標(biāo)準(zhǔn)的新方法。
AJAX 可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,與服務(wù)器交換數(shù)據(jù),并且更新部分網(wǎng)頁(yè)
。
AJAX 的核心是 XMLHttpRequest 對(duì)象。
1.使用CSS和XHTML來(lái)表示。
2.使用DOM模型來(lái)交互和動(dòng)態(tài)顯示。
3.使用XMLHttpRequest來(lái)和服務(wù)器進(jìn)行異步通信。
4.使用javascript來(lái)綁定和調(diào)用。
Ajax的工作原理在用戶和服務(wù)器之間添加了一個(gè)中間層(AJAX引擎),使用戶操作與服務(wù)器響應(yīng)異步話,并不是所有的用戶請(qǐng)求都提交給服務(wù)器。
數(shù)據(jù)驗(yàn)證和數(shù)據(jù)處理等都交給Ajax引擎自己來(lái)做,只有確定需要從服務(wù)器讀取新數(shù)據(jù)時(shí)再由Ajax引擎代為向服務(wù)器提交請(qǐng)求
來(lái)看看兩個(gè)方式的區(qū)別
XMLHttpRequ對(duì)象常用的三個(gè)屬性onreadystatechange屬性
存有服務(wù)器響應(yīng)的參數(shù)
readyState屬性
存有服務(wù)器響應(yīng)狀態(tài)的信息
readyState 屬性可能的值:
responseText 屬性
可以取得有服務(wù)器返回的數(shù)據(jù)
其他的屬性如下
xmlhttprequst的方法open()方法
xmlHttp.open("GET","test.php",true);
第一個(gè)參數(shù)定義發(fā)送請(qǐng)求所使用的方法
第二個(gè)參數(shù)規(guī)定服務(wù)器腳本的URL
第三個(gè)參數(shù)規(guī)定了請(qǐng)求是否需要異步的處理
send()方法
send() 方法將請(qǐng)求送往服務(wù)器。如果我們假設(shè) HTML 文件和 PHP 文件位于相同的目錄,那么代碼是這樣的:
xmlHttp.send(null);
其他方法如下
AJAX編程步驟1.創(chuàng)建XMLHttpRequest對(duì)象創(chuàng)建XMLHttpRequest對(duì)象
2.設(shè)置請(qǐng)求方式
3.調(diào)用回調(diào)函數(shù)
4.發(fā)送請(qǐng)求
5.處理返回的結(jié)果
var xmlhttp=new XMLHttpRequest();
一般來(lái)說(shuō)手寫AJAX的時(shí)候,首先需要判斷該瀏覽器是否支持XMLHttpRequest對(duì)象,如果支持則創(chuàng)建該對(duì)象,如果不支持則創(chuàng)建ActiveX對(duì)象。
//第一步:創(chuàng)建XMLHttpRequest對(duì)象 var xmlHttp; if (window.XMLHttpRequest) { //非IE xmlHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { //IE xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") }設(shè)置請(qǐng)求方式
一般是有兩種請(qǐng)求方式,一個(gè)是GET一個(gè)是POST,需要設(shè)置具體使用哪個(gè)請(qǐng)求方式
xmlhttp.open("method",URL,async);
參數(shù)如下
調(diào)用回調(diào)函數(shù)當(dāng)前為異步請(qǐng)求的時(shí)候,需要寫一個(gè)回調(diào)函數(shù),XMLHttpRequest對(duì)象有一個(gè)屬性,這個(gè)屬性要返回一個(gè)匿名的方法,所謂的回調(diào)函數(shù),就是請(qǐng)求在后臺(tái)處理完,再返回到前臺(tái)所實(shí)現(xiàn)的功能。
xmlhttp.onreadystatechange = function (ev2) { /* 0: 請(qǐng)求未初始化 1: 服務(wù)器連接已建立 2: 請(qǐng)求已接收 3: 請(qǐng)求處理中 4: 請(qǐng)求已完成,且響應(yīng)已就緒 */ if(xmlhttp.readyState === 4){ // 判斷是否請(qǐng)求成功 if(xmlhttp.status >= 200 && xmlhttp.status < 300 || xmlhttp.status === 304){ // 5.處理返回的結(jié)果 console.log("接收到服務(wù)器返回的數(shù)據(jù)"); }else{ console.log("沒(méi)有接收到服務(wù)器返回的數(shù)據(jù)"); } } }發(fā)送請(qǐng)求
xmlhttp.send ##處理返回的結(jié)果
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/110316.html
摘要:如果我們假設(shè)文件和文件位于相同的目錄,那么代碼是這樣的其他方法如下編程步驟創(chuàng)建對(duì)象設(shè)置請(qǐng)求方式調(diào)用回調(diào)函數(shù)發(fā)送請(qǐng)求處理返回的結(jié)果創(chuàng)建對(duì)象一般來(lái)說(shuō)手寫的時(shí)候,首先需要判斷該瀏覽器是否支持對(duì)象,如果支持則創(chuàng)建該對(duì)象,如果不支持則創(chuàng)建對(duì)象。 Ajax的簡(jiǎn)介 什么是Ajax AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)...
摘要:在接觸前端開發(fā)起,跨域這個(gè)詞就一直以很高的頻率在我們學(xué)習(xí)工作中重復(fù)出現(xiàn),最近在工作中遇到了跨域的相關(guān)問(wèn)題,這里我把它總結(jié)記錄一下。 在接觸前端開發(fā)起,跨域這個(gè)詞就一直以很高的頻率在我們學(xué)習(xí)工作中重復(fù)出現(xiàn),最近在工作中遇到了跨域的相關(guān)問(wèn)題,這里我把它總結(jié)記錄一下。關(guān)于跨域,有N種類型,現(xiàn)在我只專注于ajax請(qǐng)求跨域(ajax跨域只是屬于瀏覽器同源策略中的一部分,其它的這里不做介紹),內(nèi)容...
摘要:前端面試題總結(jié),持續(xù)更新和區(qū)別瀏覽器的緩存機(jī)制提供了可以將用戶數(shù)據(jù)存儲(chǔ)在客戶端上的方式,可以利用等跟服務(wù)端進(jìn)行數(shù)據(jù)交互。 前端面試題總結(jié),持續(xù)更新 cookies sessionStorage和localstorage區(qū)別 瀏覽器的緩存機(jī)制提供了可以將用戶數(shù)據(jù)存儲(chǔ)在客戶端上的方式,可以利用cookie,session等跟服務(wù)端進(jìn)行數(shù)據(jù)交互。相同點(diǎn):都是存儲(chǔ)在客戶端不同點(diǎn):showI...
摘要:前端面試題總結(jié),持續(xù)更新和區(qū)別瀏覽器的緩存機(jī)制提供了可以將用戶數(shù)據(jù)存儲(chǔ)在客戶端上的方式,可以利用等跟服務(wù)端進(jìn)行數(shù)據(jù)交互。 前端面試題總結(jié),持續(xù)更新 cookies sessionStorage和localstorage區(qū)別 瀏覽器的緩存機(jī)制提供了可以將用戶數(shù)據(jù)存儲(chǔ)在客戶端上的方式,可以利用cookie,session等跟服務(wù)端進(jìn)行數(shù)據(jù)交互。相同點(diǎn):都是存儲(chǔ)在客戶端不同點(diǎn):showI...
閱讀 3593·2021-10-18 13:30
閱讀 3037·2021-10-09 09:44
閱讀 2084·2019-08-30 11:26
閱讀 2454·2019-08-29 13:17
閱讀 828·2019-08-29 12:17
閱讀 2360·2019-08-26 18:42
閱讀 592·2019-08-26 13:24
閱讀 3054·2019-08-26 11:39