1.什么是AJAX?
AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML)碘举,是一種創(chuàng)建交互式網(wǎng)頁應用的網(wǎng)頁開發(fā)技術(shù)棕叫。它使用:
使用XHTML+CSS來標準化呈現(xiàn)砰嘁;
使用XML和XSLT進行數(shù)據(jù)交換及相關(guān)操作;
使用XMLHttpRequest對象與Web服務器進行異步數(shù)據(jù)通信箱锐;
使用Javascript操作Document Object Model進行動態(tài)顯示及交互窜醉;
使用JavaScript綁定和處理所有數(shù)據(jù)缚甩。
2.AJAX的工作原理
Ajax的工作原理相當于在用戶和服務器之間加了—個中間層(AJAX引擎),使用戶操作與服務器響應異步化。并不是所有的用戶請求都提交給服務器,像—些數(shù)據(jù)驗證和數(shù)據(jù)處理等都交給Ajax引擎自己來做, 只有確定需要從服務器讀取新數(shù)據(jù)時再由Ajax引擎代為向服務器提交請求弊决。
Ajax其核心有JavaScript噪舀、XMLHTTPRequest、DOM對象組成飘诗,通過XmlHttpRequest對象來向服務器發(fā)異步請求与倡,從服務器獲得數(shù)據(jù),然后用JavaScript來操作DOM而更新頁面昆稿。這其中最關(guān)鍵的一步就是從服務器獲得請求數(shù)據(jù)纺座。讓我們來了解這幾個對象。
(1).XMLHTTPRequest對象
Ajax的一個最大的特點是無需刷新頁面便可向服務器傳輸或讀寫數(shù)據(jù)(又稱無刷新更新頁面),這一特點主要得益于XMLHTTP組件XMLHTTPRequest對象溉潭。
(2).JavaScript
JavaScript是一在瀏覽器中大量使用的編程語言净响。
(3).DOM Document Object Model
DOM是給HTML和XML文件使用的一組API。它提供了文件的結(jié)構(gòu)表述喳瓣,讓你可以改變其中的內(nèi)容及可見物别惦。其本質(zhì)是建立網(wǎng)頁與Script或程序語言溝通的橋梁。所有WEB開發(fā)人員可操作及建立文件的屬性夫椭、方法及事件都以對象來展現(xiàn)(例如掸掸,document就代表“文件本身“這個對像,table對象則代表HTML的表格對象等等)。這些對象可以由當今大多數(shù)的瀏覽器以Script來取用扰付。一個用HTML或XHTML構(gòu)建的網(wǎng)頁也可以看作是一組結(jié)構(gòu)化的數(shù)據(jù)堤撵,這些數(shù)據(jù)被封在DOM(Document Object Model)中,DOM提供了網(wǎng)頁中各個對象的讀寫的支持羽莺。
(4).XML
可擴展的標記語言(Extensible Markup Language)具有一種開放的实昨、可擴展的、可自描述的語言結(jié)構(gòu)盐固,它已經(jīng)成為網(wǎng)上數(shù)據(jù)和文檔傳輸?shù)臉藴?用于其他應用程序交換數(shù)據(jù) 荒给。
(5).綜合
Ajax引擎,實際上是一個比較復雜的JavaScript應用程序刁卜,用來處理用戶請求志电,讀寫服務器和更改DOM內(nèi)容。JavaScript的Ajax引擎讀取信息蛔趴,并且互動地重寫DOM挑辆,這使網(wǎng)頁能無縫化重構(gòu),也就是在頁面已經(jīng)下載完畢后改變頁面內(nèi)容孝情,這是我們一直在通過JavaScript和DOM在廣泛使用的方法鱼蝉,但要使網(wǎng)頁真正動態(tài)起來,不僅要內(nèi)部的互動箫荡,還需要從外部獲取數(shù)據(jù)魁亦,在以前,我們是讓用戶來輸入數(shù)據(jù)并通過DOM來改變網(wǎng)頁內(nèi)容的羔挡,但現(xiàn)在洁奈,XMLHTTPRequest,可以讓我們在不重載頁面的情況下讀寫服務器上的數(shù)據(jù)婉弹,使用戶的輸入達到最少睬魂。
Ajax使WEB中的界面與應用分離(也可以說是數(shù)據(jù)與呈現(xiàn)分離),而在以前兩者是沒有清晰的界限的镀赌,數(shù)據(jù)與呈現(xiàn)分離的分離氯哮,有利于分工合作、減少非技術(shù)人員對頁面的修改造成的WEB應用程序錯誤商佛、提高效率喉钢、也更加適用于現(xiàn)在的發(fā)布系統(tǒng)。也可以把以前的一些服務器負擔的工作轉(zhuǎn)嫁到客戶端良姆,利于客戶端閑置的處理能力來處理肠虽。