資源描述:
《Web應(yīng)用程序的簡(jiǎn)單AJAX實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、ASP.NETWeb應(yīng)用程序的簡(jiǎn)單AJAX實(shí)現(xiàn) 提要本文描述了使用一種簡(jiǎn)單的方式來(lái)實(shí)現(xiàn)在ASP.NETweb應(yīng)用程序中加入AJAX功能?! ∫?、簡(jiǎn)介 本文描述了一種簡(jiǎn)單的方式來(lái)實(shí)現(xiàn)在ASP.NETweb應(yīng)用程序中加入AJAX功能。我們還將討論使用AJAX的優(yōu)缺點(diǎn)。為了說(shuō)明問(wèn)題,本文還提供了一些可用的JavaScript和C#.NET代碼?! 《槭裁词褂肁JAX 大多數(shù)讀者可能已經(jīng)知道,AJAX代表了異步JavaScript+XML。這種技術(shù)首先由微軟在1999年引入,并以"使用遠(yuǎn)程調(diào)用的DHTML/JavaScriptweb應(yīng)用程序"著稱。這一技
2、術(shù)的基本思想是,允許一個(gè)互聯(lián)網(wǎng)瀏覽器向一個(gè)遠(yuǎn)程頁(yè)面/服務(wù)作異步的HTTP調(diào)用,并且用收到的結(jié)果更新一個(gè)當(dāng)前web頁(yè)面而不必刷新整個(gè)頁(yè)面。根據(jù)這種技術(shù)創(chuàng)建者的意見(jiàn),這種技術(shù)應(yīng)能夠改進(jìn)客戶端的體驗(yàn)-使得HTTP頁(yè)面外觀與使用感覺(jué)很類似于Windows桌面應(yīng)用程序?! ∫?yàn)檫@種技術(shù)的核心實(shí)現(xiàn)是基于互聯(lián)網(wǎng)瀏覽器功能,所以其用途在當(dāng)時(shí)是很有限的。但是,幾年過(guò)去了,隨著新一代瀏覽器的支持和大量的應(yīng)用實(shí)踐(例如Google,Amazon.com,eBay等),這種技術(shù)已經(jīng)重新煥發(fā)生機(jī)。 今天,它以AJAX著名,被作為任何提供高級(jí)用戶體驗(yàn)的動(dòng)態(tài)頁(yè)面的自然的構(gòu)成部分?!?/p>
3、 三、方案描述 在本文中我們所推薦的方案盡管很簡(jiǎn)單,然而卻十分有效地實(shí)現(xiàn)了AJAX功能。這個(gè)程序很容易維護(hù)和修改,不要求開(kāi)發(fā)者具備任何特別的技巧;而且,根據(jù)我們的經(jīng)驗(yàn),它還是跨瀏覽器兼容的?! 』旧希粋€(gè)常規(guī)的類似AJAX的實(shí)現(xiàn)包括兩個(gè)主要組成部分:一個(gè)使用JavaScript代碼進(jìn)行AJAX調(diào)用并接收響應(yīng)的客戶端HTML頁(yè)面;一個(gè)遠(yuǎn)程頁(yè)面-它能夠接收一個(gè)請(qǐng)求并對(duì)請(qǐng)求的信息加以響應(yīng)。在客戶端頁(yè)面中的JavaScript代碼負(fù)責(zé)實(shí)例化一個(gè)XmlHttp對(duì)象,然后提供給這個(gè)對(duì)象一個(gè)回調(diào)方法-它負(fù)責(zé)處理收到的信息,最后把請(qǐng)求經(jīng)由XmlHttp對(duì)象發(fā)送到遠(yuǎn)程
4、頁(yè)面。所有這些都是通過(guò)JavaScript代碼來(lái)實(shí)現(xiàn)的。 我們的方法主要是針對(duì)于ASP.NET應(yīng)用程序中的應(yīng)用,并且考慮下列可能的情形: ·AJAX調(diào)用可以發(fā)生于web應(yīng)用程序的不同的ASP.NET頁(yè)面上甚至是遠(yuǎn)程頁(yè)面上; ·一遠(yuǎn)程頁(yè)面URL可能包含動(dòng)態(tài)計(jì)算的參數(shù),并且可能在ASP.NET頁(yè)面的code-behind處構(gòu)建一個(gè)URL字符串更為方便些; ·在更新一個(gè)HTML頁(yè)面之前,一個(gè)遠(yuǎn)程頁(yè)面可能響應(yīng)于一個(gè)復(fù)雜的數(shù)據(jù)分析要求; ·一遠(yuǎn)程頁(yè)面可能或者是一個(gè)外部的第三方頁(yè)面,或者是該Web應(yīng)用程序自己的頁(yè)面或服務(wù)?! ∷械倪@些考慮都顯示在下圖中:
5、 四、實(shí)現(xiàn) (一)基本AJAXJavaScript方法 我把所有的JavaScript方法分成兩部分:調(diào)用頁(yè)面特定的JavaScript方法,和通用于所有調(diào)用頁(yè)面的AJAXJavaScript方法。特定的方法還包括一個(gè)回調(diào)函數(shù),由于它負(fù)責(zé)更新頁(yè)面內(nèi)容。通用的AJAX方法負(fù)責(zé)實(shí)例化一個(gè)XmlHttp對(duì)象并向遠(yuǎn)程頁(yè)面發(fā)送異步請(qǐng)求。 得到一個(gè)XmlHttp對(duì)象的過(guò)程因?yàn)g覽器的不同而有所不同。我把它們區(qū)分為兩種不同的基本類型:微軟瀏覽器(IE家族之一)和Mozilla瀏覽器(它是指MozillaFirefox,Netscape,或Safari之一)。我還
6、在Opera瀏覽器上測(cè)試了本文中的代碼,但是我不可能保證它會(huì)一直工作良好。functionGetXmlHttpObject(handler){ varobjXmlHttp=null; if(!window.XMLHttpRequest){ //微軟 objXmlHttp=GetMSXmlHttp(); if(objXmlHttp!=null){ objXmlHttp.onreadystatechange=handler; } } else{ //Mozilla
7、Netscape
8、Safari objXmlHttp=newXMLHttpRe
9、quest(); if(objXmlHttp!=null){ objXmlHttp.onload=handler; objXmlHttp.onerror=handler; } } returnobjXmlHttp;}functionGetMSXmlHttp(){ varxmlHttp=null; varclsids=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP.2.6","Microsof
10、t.XMLHTTP.1.0","Microsoft.XMLHTTP.1","Mi