国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺談AJAX技術(shù)在WEB程序開發(fā)中的應(yīng)用

2012-04-29 18:05徐進強
電腦知識與技術(shù) 2012年26期
關(guān)鍵詞:腳本客戶端

徐進強

摘要:在目前WEB2.0的熱潮中,AJAX已成為WEB開發(fā)者談?wù)摰淖疃嗟囊豁椉夹g(shù)。它是WEB2.0革命的始作俑者,是RIA程序開發(fā)的主力軍之一。AJAX其實在技術(shù)上并沒有什么新意,類似技術(shù)早已有之,那它有什么新的突破?導(dǎo)致它成為了WEB2.0時代WEB開發(fā)的新寵呢?其實是這個時代的背景和大環(huán)境賦予了它新意,重要的是它打破了使用頁面重載的技術(shù)組合慣例,成為WEB2.0時代WEB開發(fā)中提升用戶體驗的殺手锏。

關(guān)鍵詞:異步交互;客戶端;WEB應(yīng)用程序;腳本

中圖分類號:TP271文獻標識碼:A文章編號:1009-3044(2012)26-6241-02

AJAX是Asynchronous JavaScript and XML的縮寫,也就是異步JavaScript和XML,可以看出AJAX并不是一種全新的技術(shù),它是幾種老技術(shù)的組合,是目前創(chuàng)建良好用戶體驗的交互式網(wǎng)頁應(yīng)用的重要開發(fā)技術(shù)。

作為一個理想的用戶接口最好對用戶最好是不可見的,即不干涉和影響用戶工作而只在用戶需要時提供選擇,當然這并不是一件容易的事情。如今,伴隨著計算機技術(shù)的快速發(fā)展及網(wǎng)頁瀏覽器技術(shù)的更新,一種理想的用戶界面浮出水面。

異步JavaScript+XML即AJAX技術(shù)是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù),最早是由Adaptive Path的Jesse James Gar rett提出來的。它并不是一項全新的技術(shù),如動態(tài)HTML和遠程腳本以前都出現(xiàn)的。但是從技術(shù)上講,Ajax提升了瀏覽器技術(shù)潛力,而且正在被一些專業(yè)人事及商業(yè)廣泛使用,推動在網(wǎng)絡(luò)的發(fā)展,使用者對網(wǎng)絡(luò)的興趣有了很大的提高。

1 AJAX工作原理

與傳統(tǒng)的WEB應(yīng)用不同,基于AJAX的WEB應(yīng)用采用異步交互方式,在用戶客戶端和服務(wù)器引入新層即AJAX引擎,用戶操作不再直接提交服務(wù)器,而是交由新層,從而消除了傳統(tǒng)的“請求—處理—等待—請求—處理—等待……”固定模式所帶來的缺點,提升了響應(yīng)速度,優(yōu)化了整個響應(yīng)過程。圖1演示了傳統(tǒng)WEB應(yīng)用模型與AJAX WEB應(yīng)用模型的工作原理。

在AJAX應(yīng)用程序中,當用戶填寫表單時,通過JavaScript調(diào)用AJAX引擎異步發(fā)送HTTP請求給服務(wù)器端,返回數(shù)據(jù)后由AJAX引擎交給JavaScript來更新客戶端界面。請求是異步發(fā)送的,因此在服務(wù)器處理期間JavaScript及用戶不用等待服務(wù)器的響應(yīng),用戶可以繼續(xù)輸入數(shù)據(jù)或滾動屏幕等正常使用應(yīng)用程序。AJAX的工作流程可以概括如下:

用戶在WEB應(yīng)用上執(zhí)行輸入、鼠標點擊、異動等操作;

根據(jù)操作,頁面發(fā)出響應(yīng)的DHTML事件;

調(diào)用注冊到DHTML事件的客戶端JavaScript事件處理函數(shù),其中初始化一個用以向服務(wù)器器異步發(fā)送請求的XMLHttpRequest對象,同時指定一個回調(diào)函數(shù),當服務(wù)器響應(yīng)完畢時自動調(diào)用回調(diào)函數(shù)返回結(jié)果;

服務(wù)器根據(jù)請求進行數(shù)據(jù)處理,處理完畢后服務(wù)器返回客戶端需要的數(shù)據(jù);

數(shù)據(jù)達到客戶端后通過JavaScript對用戶界面進行更新;

用戶看到處理結(jié)果。

因此AJAX具備一些獨特的優(yōu)勢,首先AJAX技術(shù)的原理是“按需取數(shù)據(jù)”,減少了冗余請求和響應(yīng)對服務(wù)器早期的負擔,同時節(jié)約了帶寬,大大提升站點的性能;其次,基于AJAX的WEB應(yīng)用與傳統(tǒng)WEB應(yīng)用最大的表現(xiàn)是有傳統(tǒng)的全部頁面刷新轉(zhuǎn)變?yōu)榫植宽撁嫠⑿?,不再有整個頁面(除非必須)重載刷新(白屏)的等待。無刷新更新頁面,減少了用戶實際和心理的等待時間;再次,正因為前面的二點,使得AJAX WEB應(yīng)用大大的提高了用戶的體驗,在用戶心中積累良好的印象。另外對于開發(fā)者而言,AJAX使WEB開發(fā)中的界面與數(shù)據(jù)分離,更有利于分工合作,提高開發(fā)效率。

2 AJAX技術(shù)的核心

XMLHttpRequest對象是AJAX技術(shù)的核心,利用它可以按需和服務(wù)器進行數(shù)據(jù)層面的交換,而不用每次都刷新頁面。

現(xiàn)在瀏覽器有很多種,創(chuàng)建XMLHttpRequest對象的方法也不相同,所以為了兼容各種瀏覽器,在創(chuàng)建XMLHttpRequest對象時必須考慮到各種瀏覽器的情況。創(chuàng)建兼容多個瀏覽器的XMLHttpRequest對象的JavaScript函數(shù)如下:

//創(chuàng)建適用用與多種瀏覽器的XMLHttpRequest對象的函數(shù)

function getXMLRequester( ){

var xmlhttp_request = false;

try{

if( window.ActiveXObject ){ //IE瀏覽器各版本的創(chuàng)建

for( var i = 5; i; i-- ){

try{

if( i == 2 ){xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );

}else{xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );

xmlhttp_request.setRequestHeader("Content- Type","text/xml");xmlhttp_request.setRequestHeader("Content- Type","gb2312");}

break;}

catch(e){

xmlhttp_request = false;

}

}

}else if( window.XMLHttpRequest ){//非IE瀏覽器創(chuàng)建

xmlhttp_request = new XMLHttpRequest();

if (xmlhttp_request.overrideMimeType) {

xmlhttp_request.overrideMimeType(text/xml);

}}

}

catch(e){

xmlhttp_request = false;

}

return xmlhttp_request ;

}

XMLHttpRequest是AJAX技術(shù)中處理所有與服務(wù)器之間通信的重要對象,它的一般工作流程為:

第一步:獲取請求,創(chuàng)建XMLHttpRequest對象;

第二步:建立要連接的URL

第三步:打開建立的到服務(wù)器的URL

第四步:設(shè)置(調(diào)用)回調(diào)函數(shù)

第五步:發(fā)送請求

3 ASP.NET AJAX開發(fā)

AJAX已經(jīng)成為目前WEB應(yīng)用的主流開發(fā)技術(shù),業(yè)界的巨頭已經(jīng)采納并大力支持它的發(fā)展,微軟也推出了自己的AJAX框架Atlas,2007年初推出第一個正式版本并且更名為ASP.NET AJAX。ASP.NET AJAX的特性分為服務(wù)器端和客戶端兩個部分,前者包含ASP.NET 2.0 AJAX Extensions以及ASP.NET AJAX Control Toolkit,后者包含Microsoft AJAX Library。

ASP.NET AJAX服務(wù)器庫具有開發(fā)者無需了解JavaScript,只需使用熟悉的類似ASP.NET開發(fā)的方式聲明服務(wù)器端控件,之后Ajax所需的客戶端腳本將自動發(fā)送至瀏覽器并執(zhí)行;并且和Visual Studio開發(fā)環(huán)境無縫集成,提供完善的自動完成、編譯期檢查以及調(diào)試等功能。讓技術(shù)人員以開發(fā)ASP.NET普通程序一樣的拖拽控件的方式開發(fā)出功能強大的AJAX WEB程序。而ASP.NET AJAX客戶端庫對JavaScript進行擴展,使其支持完全面向?qū)ο蠓绞骄幊蹋岄_發(fā)者感覺到如同使用熟悉的Java或C#語言進行編程一樣。并且提供夸瀏覽器的兼容性支持。

ASP.NET AJAX是完全免費的,在Visual Studio 2008中新建ASP.NET WEB程序默認就支持AJAX,但如果在Visual Studio 2005環(huán)境下,必須要安裝一個擴展庫,即ASP.NET 2.0 AJAX Extensions、ASP.NET AJAX Control Toolkit和Microsoft AJAX Library。

4結(jié)束語

本文全面的介紹了AJAX工作原理、核心技術(shù)及ASP.NET AJAX開發(fā)。通過AJAX技術(shù),能夠大幅度提高網(wǎng)頁使用的性能,響應(yīng)時間大幅縮短,用戶可以更加方便的使用網(wǎng)絡(luò)服務(wù)。然而AJAX技術(shù)已經(jīng)取得了很大的發(fā)展,但它在對設(shè)備、媒體以及兼容性有較高的要求上仍有待進一步研究。作為一個快速發(fā)展的領(lǐng)域,AJAX不斷涌現(xiàn)的新技術(shù)必將快速推動網(wǎng)絡(luò)應(yīng)用的快速發(fā)展

參考文獻:

[1] Dave C,Eric P, Darren J.Ajax實戰(zhàn)[M].北京:人民郵電出版社,2006.

[2]陳湘軍,景征駿,陸冷飛.WEB開發(fā)實用教程[M].大連:大連理工大學出版社,2011

[3] NAGEL C. C#高級編程[M].李銘,譯. 6版.北京:清華大學出版社,2002.

猜你喜歡
腳本客戶端
酒駕
安奇奇與小cool 龍(第二回)
如何看待傳統(tǒng)媒體新聞客戶端的“斷舍離”?
數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
孵化垂直頻道:新聞客戶端新策略
基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
大樞紐 云平臺 客戶端——中央人民廣播電臺的探索之路
快樂假期
神奇的數(shù)學