最近中文字幕2018免费版2019,久久国产劲暴∨内射新川,久久久午夜精品福利内容,日韩视频 中文字幕 视频一区

Aja技術(shù)原理應(yīng)用

前言:本站為你精心整理了Aja技術(shù)原理應(yīng)用范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。

Aja技術(shù)原理應(yīng)用

摘要ajax技術(shù)是目前深受Web用戶歡迎的一項(xiàng)技術(shù),它利用JavaScript、DOM、XML和XMLHttpRequest實(shí)現(xiàn)客戶端與服務(wù)器的異步交互,達(dá)到很好的用戶體驗(yàn)。文中介紹的選課系統(tǒng)運(yùn)用Ajax技術(shù),提高了系統(tǒng)的運(yùn)行效率。

關(guān)鍵詞Ajax技術(shù);Web服務(wù)器;XMLHttpRequest;選課系統(tǒng)

1引言

在傳統(tǒng)的Web應(yīng)用中,大部分用戶動(dòng)作會(huì)觸發(fā)一個(gè)連接到Web服務(wù)器的HTTP請(qǐng)求,服務(wù)器收到請(qǐng)求后要完成諸如驗(yàn)證合法性、計(jì)算數(shù)據(jù)、訪問數(shù)據(jù)庫(kù)等處理工作,最后返回一個(gè)HTTP頁(yè)面到客戶端,這個(gè)過程中用戶一直處于等待狀態(tài)。隨著Web技術(shù)的廣泛應(yīng)用,人們對(duì)Web應(yīng)用程序提出了更高的要求,Web不再簡(jiǎn)單應(yīng)用于網(wǎng)站,而是成為許多業(yè)務(wù)處理平臺(tái),于是人們更加注重流暢、快捷、人性化的用戶體驗(yàn),為了滿足這一需求,一種新的技術(shù)出現(xiàn)了,它就是Ajax,它使Web應(yīng)用程序繼承了桌面應(yīng)用程序反應(yīng)靈敏、胖客戶端、客戶體驗(yàn)優(yōu)秀等優(yōu)點(diǎn)。

2Ajax的工作原理

2.1Ajax工作方式

Ajax(AsynchronousJavaScriptandXML)技術(shù)實(shí)際上是在客戶端和服務(wù)器之間加入一個(gè)Ajax引擎,它允許采用異步的方式實(shí)現(xiàn)客戶端與服務(wù)器的交互,所以用戶不用打開空白窗口等待服務(wù)器的響應(yīng),而可以繼續(xù)進(jìn)行客戶端的其它工作。服務(wù)器響應(yīng)完畢之后,將結(jié)果提交給Ajax引擎,Ajax引擎使用HTML和CSS技術(shù)展示給用戶。客戶端和服務(wù)器的這種異步通信,使用戶感覺不到客戶端與服務(wù)器的通信,使得Web程序看起來是即時(shí)響應(yīng)的。圖1顯示了Ajax的工作方式。

圖1Ajax的工作方式

在傳統(tǒng)的Web應(yīng)用中,客戶端只是通過瀏覽器簡(jiǎn)單的顯示內(nèi)容,所有的信息都保存在服務(wù)器上,引入Ajax后,它把一部分Web應(yīng)用程序移到了瀏覽器中,使瀏覽器中不再是純粹的內(nèi)容。用戶登錄時(shí),瀏覽器會(huì)從服務(wù)器下載大量代碼,這些代碼具有一定的處理用戶請(qǐng)求的能力,由它們來決定是否將用戶的請(qǐng)求提交給服務(wù)器。由于用戶的一部分請(qǐng)求可以直接在客戶端進(jìn)行處理,客戶端與服務(wù)器的通信效率會(huì)提高許多。

2.2Ajax關(guān)鍵技術(shù)

Ajax技術(shù)并不是一種孤立的技術(shù),它是由多種技術(shù)綜合而成的,這些技術(shù)包括:JavaScript、DOM、XML和XMLHttpRequest,這些技術(shù)按照一定的方式發(fā)揮各自的作用構(gòu)成Ajax技術(shù)。DOM實(shí)現(xiàn)動(dòng)態(tài)顯示和交互,XML進(jìn)行數(shù)據(jù)交換與處理,XMLHttpRequest進(jìn)行異步數(shù)據(jù)讀取,JavaScript用于邦定和處理所有數(shù)據(jù)。

1)JavaScript

JavaScript是一種基于對(duì)象和事件驅(qū)動(dòng)的腳本語(yǔ)言,具有很好的安全性,它通過嵌入在標(biāo)準(zhǔn)的HTML語(yǔ)言中完成各種與用戶交互的任務(wù)。Ajax利用JavaScript的特性實(shí)現(xiàn)對(duì)用戶行為的實(shí)時(shí)響應(yīng)與處理,JavaScript還能通過其屬性和方法操作DOM,將用戶請(qǐng)求通過XMLHttpRequest對(duì)象實(shí)現(xiàn)與服務(wù)器的異步交互通信。

2)DOM

DOM(DocumentObjectModel)是一個(gè)能夠讓程序和腳本動(dòng)態(tài)訪問和更新文檔內(nèi)容、結(jié)構(gòu)和樣式的語(yǔ)言平臺(tái),它提供了標(biāo)準(zhǔn)的HTML和XML對(duì)象集,并由一個(gè)標(biāo)準(zhǔn)的接口來訪問并操作它們。DOM是一個(gè)樹型結(jié)構(gòu),由元素和節(jié)點(diǎn)組成,它是以面向?qū)ο蟮姆绞矫枋龅膶?duì)象模型。DOM對(duì)象分為HTMLDOM對(duì)象和XMLDOM對(duì)象。

3)XML

XML(eXtensibleMarkupLanguage)是可擴(kuò)展標(biāo)記語(yǔ)言的縮寫,它通常作為數(shù)據(jù)傳輸?shù)拿浇椋?wù)器采用返回XML文本的方式將響應(yīng)后的數(shù)據(jù)返回給客戶端。在應(yīng)用Ajax技術(shù)時(shí),XMLHttpRequest對(duì)象可以使用XML作為與服務(wù)器端通信的數(shù)據(jù)格式。

4)XMLHttpRequest

XMLHttpRequest是Ajax技術(shù)體系中最為核心的技術(shù),它負(fù)責(zé)將用戶信息以異步方式發(fā)送到服務(wù)器,并接收服務(wù)器返回的響應(yīng)信息和數(shù)據(jù)。Web應(yīng)用程序無需刷新頁(yè)面就可以向服務(wù)器提交信息,或從服務(wù)器得到應(yīng)答,這樣用戶就不會(huì)覺察后臺(tái)向服務(wù)器提交和接收數(shù)據(jù),而且,客戶端也不必每次都將數(shù)據(jù)處理工作交給服務(wù)器來做,這樣加快了響應(yīng)速度,也就縮短了用戶的等待時(shí)間。

3Ajax在選課系統(tǒng)中的應(yīng)用

3.1系統(tǒng)功能分析

系統(tǒng)按功能劃分為三個(gè)模塊:學(xué)生選課模塊、教師開課模塊、管理員管理模塊。如圖2所示。各模塊功能相對(duì)獨(dú)立,學(xué)生選課模塊包括修改個(gè)人信息和選課。教師開課模塊包括修改個(gè)人信息、瀏覽基本課程列表、查看學(xué)生選課信息、申請(qǐng)開課。管理員管理模塊包括為教師和學(xué)生分配帳號(hào)密碼、注銷或修改用戶狀態(tài)、創(chuàng)建課程和指定任課教師、為課程班級(jí)設(shè)定人數(shù)、對(duì)學(xué)生選課信息進(jìn)行統(tǒng)計(jì)、通知學(xué)生和老師選課結(jié)果和選課時(shí)間等。三個(gè)模塊都需要經(jīng)過注冊(cè)、登錄后才能實(shí)現(xiàn)。.2Ajax在系統(tǒng)中的應(yīng)用

本系統(tǒng)中用戶注冊(cè)、修改個(gè)人信息、選課、申請(qǐng)教課等功能的實(shí)現(xiàn)需要客戶端向服務(wù)器發(fā)出HTTP請(qǐng)求,服務(wù)器收到請(qǐng)求后進(jìn)行驗(yàn)證、訪問數(shù)據(jù)庫(kù)等處理,處理完畢后刷新頁(yè)面。其間用戶一直處于等待狀態(tài),如果出現(xiàn)斷電、網(wǎng)絡(luò)故障或信息填寫不當(dāng)?shù)纫馔馐录脩粜枰匦绿顚懘罅啃畔ⅲ@樣既降低了系統(tǒng)的運(yùn)行效率,也給用戶帶來諸多不便。

引入Ajax技術(shù)后,用戶填寫完信息由XMLHttpRequest提交給服務(wù)器進(jìn)行處理,用戶可以繼續(xù)其它操作,如果驗(yàn)證不合格客戶端可立即得到通知,而不必重新下載整個(gè)網(wǎng)頁(yè),如果出現(xiàn)意外情況也可從服務(wù)器獲得已填寫的信息。以下以注冊(cè)部分關(guān)鍵代碼為例說明Ajax應(yīng)用。

1)創(chuàng)建XMLHttpRequest對(duì)象

functioncreateXMLHttpRequest()

{

if(window.ActiveXObject){

if(navigator.userAgent.toLowerCase().indexOf(''''msie5'''')!=-1){

xmlHttp=newActiveXObject("Microsoft.XMLHTTP");}

else{

xmlHttp=newActiveXObject("Msxml2.XMLHTTP");}

}

elseif(window.XMLHttpRequest){

xmlHttp=newXMLHttpRequest();}

else{

alert("創(chuàng)建XMLHttpRequest失敗!");}

}

2)XMLHttpRequest發(fā)送請(qǐng)求

functioncheckUser(userId){//checkuserName

varuserObj=document.getElementById(userId);

varurl="checkUser.asp?userName="+escape(userObj.value);//請(qǐng)求的URL

xmlHttp.open("GET",url,true);//true:異步方式

xmlHttp.onreadystatechange=checkUserOk;//指定狀態(tài)變化時(shí)觸發(fā)的事件句柄

xmlHttp.send(null);///發(fā)送信息

}

3)XMLHttpRequest處理服務(wù)器響應(yīng)

functioncheckUserOk(){//checkuserNameready

if(xmlHttp.readyState==4){//完成

varresponse=xmlHttp.responseText;

varalertObj=document.GetElementById("reg_alert");

if(response=="該帳號(hào)已注冊(cè)"){

alertObj.innerHTML="對(duì)不起,<br/>此用戶已經(jīng)注冊(cè)!";

}elseif(response=="帳號(hào)為空"){

alertObj.innerHTML="對(duì)不起,<br/>用戶名不能為空!";

}elseif(response=="帳號(hào)未注冊(cè)"){

alertObj.innerHTML="<spanclass=''''blue_txt''''>此用戶名可用!</span>";

}elseif(response=="帳號(hào)不存在"){

alertObj.innerHTML="對(duì)不起,<br/>用戶名不可用!";}

}

}

4結(jié)束語(yǔ)

Ajax技術(shù)并不是一項(xiàng)復(fù)雜的技術(shù),但是它很好地利用了幾項(xiàng)技術(shù)的融合,達(dá)到了令人滿意的效果,成為深受Web用戶喜愛的一項(xiàng)技術(shù)。本選課系統(tǒng)主要在用戶注冊(cè)、修改個(gè)人信息、填寫選課信息、申請(qǐng)教課頁(yè)面運(yùn)用Ajax技術(shù),該技術(shù)避免了用戶多次填寫大量信息的煩惱,縮短了用戶的等待時(shí)間,充分體現(xiàn)了Ajax技術(shù)的優(yōu)點(diǎn)。

參考文獻(xiàn)

[1]曹衍龍,葉達(dá)峰.Ajax編程技術(shù)與實(shí)例[M].北京:人民郵電出版社,2007.5

[2]RyanAsleson,NathanielTSchutta.Ajax基礎(chǔ)教程[M].北京:人民郵電出版社,2006

[3]尹永田,葛蘇慧,任佳.基于的網(wǎng)上選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)現(xiàn)代教育裝備,2006,12

[4]柯昌正,黃厚寬.Ajax技術(shù)的原理與應(yīng)用[J].鐵路計(jì)算機(jī)應(yīng)用,2007,1

[5]DavidFlanagan.JavaScript權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2003

[6]DynamicHtmlandXML:TheXMLHttpRequestObject[EB/OL].http:///internet/webcontent/xmlhttpreq.html

[7]BrettMcLaughlin.AJAX簡(jiǎn)介[EB/OL].http:///lithe/archive/2006/02/22/605234.aspx

文檔上傳者
主站蜘蛛池模板: 东丽区| 手游| 垦利县| 含山县| 伊通| 宜宾县| 文山县| 泉州市| 临桂县| 呼和浩特市| 海林市| 攀枝花市| 连山| 游戏| 股票| 桓仁| 马公市| 门源| 石林| 固原市| 拜城县| 南丹县| 忻城县| 象州县| 镇江市| 登封市| 盐城市| 孝义市| 于田县| 宽城| 泌阳县| 西乌珠穆沁旗| 内黄县| 柳河县| 洛浦县| 淮南市| 和静县| 苏州市| 清新县| 卢龙县| 泾阳县|