首頁(yè)技術(shù)文章正文

PHP培訓(xùn)教程之AJAX技術(shù)

更新時(shí)間:2017-05-16 來(lái)源:黑馬程序員PHP培訓(xùn)學(xué)院 瀏覽量:

1、AJAX初步認(rèn)識(shí)
AJAX的全稱是Asynchronous JavaScript And XML.
AJAX是2005年由Google發(fā)起并流行起來(lái)的編程方法, AJAX不是一個(gè)新的編程語(yǔ)言,但是它是一個(gè)使用已有標(biāo)準(zhǔn)的新的編程技術(shù)。是一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。
使用AJAX可以創(chuàng)建更好,更快,更用戶界面友好的Web應(yīng)用。
 AJAX技術(shù)基于Javascript和HTTP Request.
 Ajax包含下列技術(shù):
基于web標(biāo)準(zhǔn)(standards-basedpresentation)XHTML+CSS的表示;
使用 DOM(Document ObjectModel)進(jìn)行動(dòng)態(tài)顯示及交互;
使用 XML 和 XSLT 進(jìn)行
數(shù)據(jù)交換及相關(guān)操作;
使用 XMLHttpRequest 進(jìn)行異步數(shù)據(jù)查詢、檢索;
使用 JavaScript 將所有的東西綁定在一起。

 

2、使用Ajax的好處
 1、通過(guò)異步模式,提升了用戶體驗(yàn)
 2、優(yōu)化了瀏覽器和服務(wù)器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占用
 3、Ajax引擎在客戶端運(yùn)行,承擔(dān)了一部分本來(lái)由服務(wù)器承擔(dān)的工作,從而減少了大用戶量下的服務(wù)器負(fù)載。

 

3、AJAX最大的特點(diǎn)
 Ajax可以實(shí)現(xiàn)動(dòng)態(tài)不刷新(局部刷新)
    就是能在不更新整個(gè)頁(yè)面的前提下維護(hù)數(shù)據(jù)。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動(dòng)作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒(méi)有改變過(guò)的信息。
 

4、XMLhttprequest對(duì)象。
 Ajax的核心是JavaScript對(duì)象XmlHttpRequest。該對(duì)象在Internet Explorer 5中首次引入,它是一種支持異步請(qǐng)求的技術(shù)。簡(jiǎn)而言之,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請(qǐng)求并處理響應(yīng),而不阻塞用戶。通過(guò)XMLHttpRequest對(duì)象,Web開(kāi)發(fā)人員可以在頁(yè)面加載以后進(jìn)行頁(yè)面的局部更新。
 

5、AJAX技術(shù)體系的組成部分有哪些?
HTML,css,dom,xml,xmlHttpRequest,javascript
 
6、AJAX應(yīng)用和傳統(tǒng)Web應(yīng)用有什么不同。
    在傳統(tǒng)的Javascript編程中,如果想得到服務(wù)器端數(shù)據(jù)庫(kù)或文件上的信息,或者發(fā)送客戶端信息到服務(wù)器,需要建立一個(gè)HTML form然后GET或者POST數(shù)據(jù)到服務(wù)器端。用戶需要點(diǎn)擊”Submit”按鈕來(lái)發(fā)送或者接受數(shù)據(jù)信息,然后等待服務(wù)器響應(yīng)請(qǐng)求,頁(yè)面重新加載。
因?yàn)榉?wù)器每次都會(huì)返回一個(gè)新的頁(yè)面, 所以傳統(tǒng)的web應(yīng)用有可能很慢而且用戶交互不友好。
 使用AJAX技術(shù), 就可以使Javascript通過(guò)XMLHttpRequest對(duì)象直接與服務(wù)器進(jìn)行交互。
通過(guò)HTTP Request, 一個(gè)web頁(yè)面可以發(fā)送一個(gè)請(qǐng)求到web服務(wù)器并且接受web服務(wù)器返回的信息(不用重新加載頁(yè)面),展示給用戶的還是通一個(gè)頁(yè)面,用戶感覺(jué)頁(yè)面刷新,也看不到到Javascript后臺(tái)進(jìn)行的發(fā)送請(qǐng)求和接受響應(yīng)。

 
7、AJAX請(qǐng)求總共有多少種CALLBACK
Ajax請(qǐng)求總共有八種Callback
onSuccess
onFailure
onUninitialized
onLoading
onLoaded
onInteractive
onComplete
onException

 
8.Ajax和javascript的區(qū)別
    javascript是一種在瀏覽器端執(zhí)行的腳本語(yǔ)言,Ajax是一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的開(kāi)發(fā)技術(shù) ,它是利用了一系列相關(guān)的技術(shù)其中就包括javascript。
    Javascript是由網(wǎng)景公司開(kāi)發(fā)的一種腳本語(yǔ)言,它和sun公司的java語(yǔ)言是沒(méi)有任何關(guān)系的,它們相似的名稱只是一種行銷策略。
在一般的web開(kāi)發(fā)中,javascript是在瀏覽器端執(zhí)行的,我們可以用javascript控制瀏覽器的行為和內(nèi)容。
 

9、在 Ajax應(yīng)用中信息是如何在瀏覽器和服務(wù)器之間傳遞的
   通過(guò)XML數(shù)據(jù)或者字符串
 
10、在瀏覽器端如何得到服務(wù)器端響應(yīng)的XML數(shù)據(jù)。
    XMLHttpRequest對(duì)象的responseXMl屬性
 
12、 XMLHttpRequest對(duì)象在IE和Firefox中創(chuàng)建方式的不同 
    有,IE中通過(guò)new ActiveXObject()得到,F(xiàn)irefox中通過(guò)newXMLHttpRequest()得到10、介紹一下XMLHttpRequest對(duì)象的常用方法和屬性。
    open(“method”,”URL”) 建立對(duì)服務(wù)器的調(diào)用,第一個(gè)參數(shù)是HTTP請(qǐng)求方式可以為GET,POST或任何服務(wù)器所支持的您想調(diào)用的方式。
    第二個(gè)參數(shù)是請(qǐng)求頁(yè)面的URL。
    send()方法,發(fā)送具體請(qǐng)求
    abort()方法,停止當(dāng)前請(qǐng)求!
    readyState屬性請(qǐng)求的狀態(tài) 有5個(gè)可取值0=未初始化 ,1=正在加載,2=以加載,3=交互中,4=完成
    responseText 屬性服務(wù)器的響應(yīng),表示為一個(gè)串
    reponseXML 屬性服務(wù)器的響應(yīng),表示為XML
    status服務(wù)器的HTTP狀態(tài)碼,200對(duì)應(yīng)ok  400對(duì)應(yīng)not found
 

13、AJAX的優(yōu)點(diǎn)和缺點(diǎn)
1、最大的一點(diǎn)是頁(yè)面無(wú)刷新,用戶的體驗(yàn)非常好。
2、使用異步方式與服務(wù)器通信,具有更加迅速的響應(yīng)能力。
3、可以把以前一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利用客戶端閑置的能力來(lái)處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),節(jié)約空間和寬帶租用成本。并且減輕服務(wù)器的負(fù)擔(dān),ajax的原則是“按需取數(shù)據(jù)”,可以最大程度的減少冗余請(qǐng)求,和響應(yīng)對(duì)服務(wù)器造成的負(fù)擔(dān)。
4、基于標(biāo)準(zhǔn)化的并被廣泛支持的技術(shù),不需要下載插件或者小程序。

 
14、ajax的缺點(diǎn)
1、ajax不支持瀏覽器back按鈕。
2、安全問(wèn)題 AJAX暴露了與服務(wù)器交互的細(xì)節(jié)。
3、對(duì)搜索引擎的支持比較弱。
4、破壞了程序的異常機(jī)制。
5、不容易調(diào)試。

 
15、介紹XMLHttpRequest對(duì)象
 通過(guò)XMLHttpRequest對(duì)象,Web開(kāi)發(fā)人員可以在頁(yè)面加載以后進(jìn)行頁(yè)面的局部更新。
  AJAX開(kāi)始流行始于Google在2005年使用的”Google Suggest”。
“Google Suggest”就是使用XMLHttpRequest對(duì)象來(lái)創(chuàng)建動(dòng)態(tài)的Web接口:
當(dāng)用戶開(kāi)始輸入google的搜索框,Javascript發(fā)送用戶輸入的字符到服務(wù)器,然后服務(wù)器返回一個(gè)建議列表。
XMLHttpRequest對(duì)象在IE5.0+, Safari 1.2, Mozilla1.0/Firefox, Opera 8+ 和NetScapt7 開(kāi)始被支持。
 

16、如果熟悉某種ajax框架,他可能會(huì)問(wèn)到怎樣在程序中使用這種框架
    DWR(DirectWeb Remoting)是一個(gè)WEB遠(yuǎn)程調(diào)用框架.利用這個(gè)框架可以讓AJAX開(kāi)發(fā)變得很簡(jiǎn)單.利用DWR可以在客戶端利用JavaScript直接調(diào)用服務(wù)端的Java方法并返回值給JavaScript就好像直接本地客戶端調(diào)用一樣(DWR根據(jù)Java類來(lái)動(dòng)態(tài)生成JavaScrip代碼).  
    DWR的實(shí)現(xiàn)原理是通過(guò)反射,將java翻譯成javascript,然后利用回調(diào)機(jī)制,從而實(shí)現(xiàn)了javascript調(diào)用Java代碼



本文版權(quán)歸黑馬程序員php培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!

作者:黑馬程序員php培訓(xùn)學(xué)院

首發(fā):http://www.pantone-color.com.cn/news/php.html

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!