AJAX初級(jí)教程之初識(shí)AJAX
從剛剛接觸B/S開(kāi)發(fā),就耳聞AJAX技術(shù),但一直處于模棱兩可的狀態(tài),大道理明白,一到動(dòng)手就傻眼了。
AJAX仿佛就是深不可測(cè)的技術(shù),成為B/S學(xué)習(xí)過(guò)程中的一個(gè)陰影。
直到前些日子,小菜才真正開(kāi)始AJAX實(shí)踐,真正動(dòng)手了才發(fā)現(xiàn),AJAX并沒(méi)有那么困難,如果不考慮AJAX的變型應(yīng)用,只考慮AJAX基本應(yīng)用,它還是相當(dāng)簡(jiǎn)單的,過(guò)于復(fù)雜的理論阻礙了我們動(dòng)手的積極性。
因此,本系列教程將從實(shí)用的角度出發(fā),以最快的速度讓讀者掌握基本的AJAX應(yīng)用,以最直接的方式展示AJAX技術(shù)。
為了更好的閱讀本系列教程,對(duì)讀者有如下要求:
l 熟悉HTML。
l 熟悉HTTP協(xié)議。
l 熟悉javascript。
l 熟悉XML。
l 熟悉XML DOM。
AJAX并不是一項(xiàng)新技術(shù),它只是一個(gè)新標(biāo)準(zhǔn)。根據(jù)小菜個(gè)人理解,所謂AJAX技術(shù),即為了實(shí)現(xiàn)客戶端和服務(wù)器的后臺(tái)交互,以xml作為信息載體,利用javascript進(jìn)行控制,通過(guò)HTTP協(xié)議進(jìn)行交互,達(dá)到html界面部分刷新的效果。
下面小談一下這些技術(shù)。
HTML沒(méi)啥好說(shuō)的。
HTTP協(xié)議內(nèi)容就比較多了。在AJAX實(shí)踐中,會(huì)涉及到POST、GET方法請(qǐng)求數(shù)據(jù)、HTTP頭部信息的構(gòu)造、數(shù)據(jù)的解析格式等,主要就是這三項(xiàng),看看哪個(gè)不熟悉,趕緊補(bǔ)習(xí)吧!不過(guò)都很簡(jiǎn)單,不要有壓力。
小菜覺(jué)得AJAX就是在寫Javascript腳本,javascript負(fù)責(zé)聲明一個(gè)至關(guān)重要的XMLHttpRequest對(duì)象,這個(gè)對(duì)象通過(guò)POST或GET方法向服務(wù)器發(fā)送請(qǐng)求,取得xml的格式的返回?cái)?shù)據(jù),再把xml解析,展示在界面上,這就是AJAX執(zhí)行過(guò)程。
xml無(wú)非就是一種數(shù)據(jù)規(guī)范,它可以使數(shù)據(jù)具有一定結(jié)構(gòu),這樣一來(lái),方便了數(shù)據(jù)組織,又方便了數(shù)據(jù)擴(kuò)展。
xml的基本組成是元素,也就是HTML中常說(shuō)的標(biāo)簽,例如:<book></book>;而元素和元素又可以嵌套,例如:<book><name></name></book>。同時(shí),元素又可以擁有屬性,例如:<book><name data=”一千零一夜”></name></book>。
這樣一來(lái),xml就可以表示非常豐富、靈活的信息,甚至可以當(dāng)成小型數(shù)據(jù)庫(kù)來(lái)用。
在此,小提一下,建議用子元素的方法來(lái)擴(kuò)展元素,例如:<book><name></name></book>,不建議用屬性的方式擴(kuò)展元素,例如:<book name=””></book>,因?yàn)樽釉乇葘傩愿屿`活,也符合x(chóng)ml的設(shè)計(jì)思想。
想要用Javascript操作xml,必須了解基本的DOM(Document Object Model)知識(shí)。為了方便讀者學(xué)習(xí),小菜簡(jiǎn)單介紹一下XML DOM。
根據(jù)DOM定義,xml中每個(gè)成分都是一個(gè)節(jié)點(diǎn)。根據(jù)小菜的理解,成分的含義就是xml的組成部分。
具體如下:
l 整個(gè)文檔是一個(gè)文檔節(jié)點(diǎn)。
l 每個(gè)xml標(biāo)簽是一個(gè)元素節(jié)點(diǎn)。例如<book></book>是一對(duì)標(biāo)簽,也叫元素節(jié)點(diǎn),又叫元素。
l 包含在xml元素中的文本是文本節(jié)點(diǎn)。例如<name>一千零一夜</name>,其中“一千零一夜”就是文本節(jié)點(diǎn)。
l xml元素的屬性叫屬性節(jié)點(diǎn)。例如<book serialNumber=”0905024”></book>,其中serialNumber就是屬性節(jié)點(diǎn)。
節(jié)點(diǎn)有三個(gè)非常重要的屬性,分別為:nodeName(節(jié)點(diǎn)名稱)、nodeValue(節(jié)點(diǎn)值)、nodeType(節(jié)點(diǎn)類型)。其中nodeName和nodeValue非常常用,必須搞清楚。
對(duì)于nodeName(只讀)有:
l 元素節(jié)點(diǎn)的nodeName與該元素的標(biāo)簽名相同。例如元素<book></book>,它的nodeName就是book。
l 屬性節(jié)點(diǎn)的nodeName就是屬性名稱。例如<book serialNumber=” 0905024”></book>,屬性節(jié)點(diǎn)是serialNumber,那么它的nodeName屬性也是serialNumber。
l 文本節(jié)點(diǎn)的nodeName是固定的#text字符串。例如<name>一千零一夜</name>,文本節(jié)點(diǎn)是“一千零一夜”,它的nodeName將返回”#text”這個(gè)固定字符串。
對(duì)于nodeValue(讀/寫)有:
l 元素節(jié)點(diǎn)的nodeValue返回undefind。例如<book></book>元素,它的nodeValue屬性將返回undefind。
l 屬性節(jié)點(diǎn)的nodeValue即該屬性的值。例如<book serialNumber=” 0905024”></book>,屬性節(jié)點(diǎn)是serialNumber,它的nodeValue返回0905024。
l 文本節(jié)點(diǎn)的nodeValue即文本自身內(nèi)容。例如<name>一千零一夜</name>,文本節(jié)點(diǎn)是“一千零一夜”,它的nodeValue返回“一千零一夜”。這個(gè)一定要特別注意!??!本例中name元素包含了一個(gè)“一千零一夜”文本節(jié)點(diǎn),“一千零一夜”并不是name元素的值(nodeValue)!name元素的值(nodeValue)是undefind!因此實(shí)際編程時(shí)要注意,當(dāng)獲取到name元素時(shí),還要類似firstChild、childNodes[0]這樣進(jìn)一步獲取元素中包含的文本節(jié)點(diǎn),然后才能用nodeValue屬性讀出文本內(nèi)容。
綜上,可以用一張圖概括AJAX技術(shù):

小菜精力有限,水平也有限,不可能把這些技術(shù)講的很細(xì),還需要讀者有一定基礎(chǔ),本系列文章的目的是通過(guò)小菜的實(shí)戰(zhàn)例子,讓讀者對(duì)AJAX恍然大悟,認(rèn)清AJAX本質(zhì)。
相關(guān)文章
Ajax方式實(shí)現(xiàn)定期更新頁(yè)面某塊內(nèi)容的方法
這篇文章主要介紹了Ajax方式實(shí)現(xiàn)定期更新頁(yè)面某塊內(nèi)容的方法,涉及jquery中l(wèi)oad方法Ajax調(diào)用及setInterval定時(shí)執(zhí)行的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
layUI ajax加載html頁(yè)面后重新渲染的方法
今天小編就為大家分享一篇layUI ajax加載html頁(yè)面后重新渲染的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
ajax實(shí)現(xiàn)提交時(shí)校驗(yàn)表單方法
這篇文章主要為大家詳細(xì)介紹了ajax實(shí)現(xiàn)提交時(shí)校驗(yàn)表單方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
ajax的json傳值方式在jsp頁(yè)面中的應(yīng)用
ajax的json傳值想必大家早有所耳聞了吧,本文介紹下jsp頁(yè)面中json傳值應(yīng)用,感興趣的你可以參考下哈,希望可以幫助到你2013-03-03
ajax提交到j(luò)ava后臺(tái)之后處理數(shù)據(jù)的實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇ajax提交到j(luò)ava后臺(tái)之后處理數(shù)據(jù)的實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
使用ajax技術(shù)無(wú)刷新動(dòng)態(tài)調(diào)用股票信息
新浪的財(cái)金頻道一直感覺(jué)做得很好。但由于最近網(wǎng)速慢的緣故,查看股票信息時(shí)網(wǎng)頁(yè)老是打不開(kāi)。這幾天一直在研究ajax,于是用jquery自己做了一個(gè)自動(dòng)讀取新浪股票實(shí)時(shí)數(shù)據(jù)的頁(yè)面。2008-11-11

