• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      徐進(jìn)強(qiáng)

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

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

      中圖分類號(hào):TP271文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)26-6241-02

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

      作為一個(gè)理想的用戶接口最好對(duì)用戶最好是不可見的,即不干涉和影響用戶工作而只在用戶需要時(shí)提供選擇,當(dāng)然這并不是一件容易的事情。如今,伴隨著計(jì)算機(jī)技術(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提出來的。它并不是一項(xiàng)全新的技術(shù),如動(dòng)態(tài)HTML和遠(yuǎn)程腳本以前都出現(xiàn)的。但是從技術(shù)上講,Ajax提升了瀏覽器技術(shù)潛力,而且正在被一些專業(yè)人事及商業(yè)廣泛使用,推動(dòng)在網(wǎng)絡(luò)的發(fā)展,使用者對(duì)網(wǎng)絡(luò)的興趣有了很大的提高。

      1 AJAX工作原理

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

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

      用戶在WEB應(yīng)用上執(zhí)行輸入、鼠標(biāo)點(diǎn)擊、異動(dòng)等操作;

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

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

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

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

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

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

      2 AJAX技術(shù)的核心

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

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

      //創(chuàng)建適用用與多種瀏覽器的XMLHttpRequest對(duì)象的函數(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ù)器之間通信的重要對(duì)象,它的一般工作流程為:

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

      第二步:建立要連接的URL

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

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

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

      3 ASP.NET AJAX開發(fā)

      AJAX已經(jīng)成為目前WEB應(yīng)用的主流開發(fā)技術(shù),業(yè)界的巨頭已經(jīng)采納并大力支持它的發(fā)展,微軟也推出了自己的AJAX框架Atlas,2007年初推出第一個(gè)正式版本并且更名為ASP.NET AJAX。ASP.NET AJAX的特性分為服務(wù)器端和客戶端兩個(gè)部分,前者包含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所需的客戶端腳本將自動(dòng)發(fā)送至瀏覽器并執(zhí)行;并且和Visual Studio開發(fā)環(huán)境無縫集成,提供完善的自動(dòng)完成、編譯期檢查以及調(diào)試等功能。讓技術(shù)人員以開發(fā)ASP.NET普通程序一樣的拖拽控件的方式開發(fā)出功能強(qiáng)大的AJAX WEB程序。而ASP.NET AJAX客戶端庫對(duì)JavaScript進(jìn)行擴(kuò)展,使其支持完全面向?qū)ο蠓绞骄幊蹋岄_發(fā)者感覺到如同使用熟悉的Java或C#語言進(jìn)行編程一樣。并且提供夸瀏覽器的兼容性支持。

      ASP.NET AJAX是完全免費(fèi)的,在Visual Studio 2008中新建ASP.NET WEB程序默認(rèn)就支持AJAX,但如果在Visual Studio 2005環(huán)境下,必須要安裝一個(gè)擴(kuò)展庫,即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)時(shí)間大幅縮短,用戶可以更加方便的使用網(wǎng)絡(luò)服務(wù)。然而AJAX技術(shù)已經(jīng)取得了很大的發(fā)展,但它在對(duì)設(shè)備、媒體以及兼容性有較高的要求上仍有待進(jìn)一步研究。作為一個(gè)快速發(fā)展的領(lǐng)域,AJAX不斷涌現(xiàn)的新技術(shù)必將快速推動(dòng)網(wǎng)絡(luò)應(yīng)用的快速發(fā)展

      參考文獻(xiàn):

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

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

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

      猜你喜歡
      腳本客戶端
      酒駕
      安奇奇與小cool 龍(第二回)
      如何看待傳統(tǒng)媒體新聞客戶端的“斷舍離”?
      數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
      縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
      孵化垂直頻道:新聞客戶端新策略
      基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
      大樞紐 云平臺(tái) 客戶端——中央人民廣播電臺(tái)的探索之路
      快樂假期
      神奇的數(shù)學(xué)
      广河县| 陆丰市| 齐河县| 金华市| 博湖县| 饶阳县| 台湾省| 南通市| 水城县| 富锦市| 大田县| 凌云县| 广南县| 屯门区| 榆林市| 平顺县| 西充县| 博野县| 梅河口市| 江城| 德阳市| 扶沟县| 东明县| 涞水县| 五寨县| 罗田县| 清流县| 集贤县| 泗水县| 龙海市| 灵丘县| 岳普湖县| 宁河县| 星子县| 江永县| 景洪市| 漳州市| 浦东新区| 闽清县| 万山特区| 诸城市|