新四季網

一種實現ajax網頁的方法

2023-05-18 22:52:21

專利名稱:一種實現ajax網頁的方法
技術領域:
本發明涉及網絡技術,具體涉及AJAX網頁技術,更具體地說,涉及一種實現AJAX網頁的方法。
背景技術:
隨著網際網路的不斷發展,傳統的動態網頁開發技術已經為許多網頁製作人員所熟悉。近年來,豐富網際網路應用程式(Rich Internet Application,簡稱RIA)開發模式的興起使網際網路用戶對網絡交互感受提出了更高的要求,傳統的技術已經無法滿足RIA開發的需要,而AJAX(Asynchronous JavaScriptand XML,簡稱AJAX)開始成為主流的RIA開發模式。AJAX是一個結合了DHTML技術、XML(可擴展標記語言,eXtensible Markup Language)以及JavaScript的等編程技術。AJAX並不是一門新的語言或技術,它實際上是幾項技術按一定的方式組合在一起在共同的協作中發揮各自的作用。AJAX是使用客戶端腳本與網頁伺服器交換數據的網頁應用開發方法。這樣,網頁頁面不用打斷交互流程進行重新加裁,就可以動態地更新。AJAX網頁的一個最大的特點是無需刷新頁面便可向伺服器傳輸或讀寫數據(又稱為無刷新更新頁面)。
傳統的ASP(Active Server Pages,活動伺服器網頁)/JSP(Java ServerPages)動態網頁開發模式是通過伺服器解析其約定的標記實現了動態網頁生成和數據展現,在數據發生變化時通過頁面刷新來更新新展現的數據。在這種交互方式下,由用戶觸發一個HTTP請求到伺服器,每當伺服器處理客戶端提交的請求時,伺服器需要完整地解析頁面並生成HTML代碼在頁面中展現,但是用戶只能空閒等待,並且一次很小的交互或需從伺服器端得到一個很簡單的數據,都要返回一個完整的HTML頁面,浪費了時間和帶寬去重新讀取整個頁面。因此,消耗了過多的伺服器資源和網絡帶寬資源,影響了伺服器與用戶交互的速度,破壞了用戶的交互感受。
現有的實現AJAX模式一般通過以下3種方式來實現(1)AJAX可以利用Javascript腳本技術來控制瀏覽器內置的XML控制項,從而實現AJAX頁面無刷新的動態數據展現。如果採用在每個頁面中編寫腳本解析XML數據並展現在頁面中,這種實現AJAX的開發模式會帶來非常大的前臺頁面的開發工作;如果由後臺返回完整的XML文件後用腳本(利用控制項)解析xml後生成html代碼再灌回頁面的層中,這種實現AJAX的開發模式也會帶來非常大的後臺程序的耦合,並且導致後臺XML數據難以重用和緩存。
(2)ZK包括一個基於AJAX可自動進行交互式操作的事件驅動引擎和一套兼容XUL的組件,可以用具有XUL特性的組件來表示應用程式並通過由用戶觸發的監聽事件來操作這些組件,從而實現AJAX頁面無刷新的動態數據展現。但是,這種實現AJAX的開發模式帶來的是XUL這個技術門檻,並且只能將後臺綁定在了J2EE伺服器,限制了AJAX技術的應用範圍。
(3)Google AJAXSL(http://goog-ajaxslt.sourceforge.net),是一個Javascript框架,用來執行XSLT轉換以及XPath查詢,從而實現AJAX頁面無刷新的動態數據展現。目前在Google Map就使用了此技術。但是,這種實現AJAX的開發模式也帶來XSLT這個技術門檻,並且提高了網頁開發人員的學習曲線,增加了網頁開發的複雜度。

發明內容
本發明要解決的技術問題在於,針對現有技術的上述傳統的ASP/JSP頁面交互效率低、用戶感受差以及當前AJAX的開發技術複雜等缺陷,提供一種基於自定義標記網頁利用標記引擎腳本實現AJAX網頁的方法。
本發明解決其技術問題所採用的技術方案是構造一種實現AJAX網頁的方法,包括以下步驟S1.伺服器接收到客戶端的請求後向所述客戶端返回所述請求的網頁,該網頁設有標記引擎腳本;S2.所述伺服器根據所述網頁與用戶的交互信息向所述客戶端返回XML數據;S3.所述標記引擎腳本將所述XML數據解析為HTML數據。
在本發明所述網頁上使用自定義標記。
在本發明在步驟S1之前,還包括根據前後臺數據接口約定,確定XML模板;根據所述XML模板開發後臺程序;採用自定義標記設計網頁並通過標記引擎腳本加載所述XML模板數據;在伺服器與客戶端連調時,用動態XML數據替換設計過程中所使用的XML模板數據。
在本發明所述步驟S3包括S31.調用所述標記引擎腳本接收所述XML數據並判斷網頁是否初次進行標記解析,如果是,則執行步驟S32,如果不是,則執行步驟S33;S32.通過瀏覽器提供的應用編程接口(Application ProgrammingInterface簡稱API)獲得網頁的HTML代碼並保存原始的HTML代碼;S33.取回上次解析前的原始HTML代碼;S34.用遞歸算法分析獲得所述HTML代碼並逐層分解出其中的自定義標記;S35.根據逐層分解出的所述自定義標記找出所述HTML代碼中需要使用的循環、判斷和替換邏輯以及所述使用的循環、判斷和替換邏輯與所述XML數據之間的映射關係;S36.通過逐層遞歸用所述XML數據填充需要替換的所述自定義標記,生成最終的HTML代碼;S37.通過瀏覽器提供的API接口將所述生成的HTML代碼返回到客戶端。
在本發明所述標記引擎腳本是用JavaScript腳本編寫。
在本發明所述步驟S2中,所述交互信息是用戶請求動態展現網頁內容信息或用戶輸入的數據信息。
在本發明所述自定義標記是指用於控制頁面解析邏輯的,瀏覽器無法自行解析的,則由伺服器解析的頁面標記。
在本發明所述自定義標記是ASP/JSP標記。
實施本發明方法的有益效果是,允許網頁開發人員採用傳統的頁面標記技術開發AJAX動態頁面,減少了開發工作量,提高了軟體的可靠性,帶來更好的用戶體驗,進一步促進頁面展現和數據的分離。


下面將結合附圖及實施例,對本發明作進一步說明,附圖中圖1是利用本發明方法實現AJAX網頁的流程圖;圖2是利用本發明方法實現AJAX網頁的結構框圖;圖3是利用本發明方法的標記引擎腳本的實現流程圖。
具體實施例方式
傳統的ASP與JSP技術非常相似,兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。在ASP或JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴於Web伺服器,而ASP和JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給客戶端瀏覽器。ASP和JSP都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。
傳統的ASP網頁包含HTML標記、普通文本、VB Script或Jscript腳本程序代碼以及COM組件等,其文件擴展名是.asp而不是.html或.htm。當客戶端瀏覽器瀏覽ASP網頁時,伺服器根據接收到該ASP頁面的請求,通過ASP.DLL文件將ASP文件從頭至尾被解析執行並根據命令要求生成響應的HTML頁面送回給客戶端瀏覽器,這樣客戶端瀏覽器看到的就是動態生成的網頁。
傳統的JSP頁面實際上是一個帶有傳統HTML標記和Java代碼的Web頁面。JSP頁面的文件擴展名是.jsp。當客戶端瀏覽器瀏覽JSP網頁時,伺服器根據接收到該JSP頁面的請求,通過JSP引擎將該JSP文件轉變成一個純Java的Servlet,然後將其編譯成Servlet字節代碼,這個Servlet可以調用其他的Servlet或JavaBeans,最後將Servlet的執行結果HTML頁面送回給客戶端瀏覽器,這樣客戶端瀏覽器看到的就是動態生成的網頁。
因此,正如背景技術提到的,用戶與頁面進行交互時,伺服器端每次都要返回一個完整的HTML頁,這樣,用戶每次都要浪費時間和帶寬去重新讀取整個頁面,消耗了過多的伺服器資源和網絡帶寬資源,影響了伺服器與用戶交互的速度,破壞了用戶的交互感受。
針對上述情況,本發明利用標記引擎腳本實現基於自定義標記開發模式的AJAX網頁。自定義標記指用於控制頁面解析邏輯的,瀏覽器無法自行解析的,傳統上由伺服器解析的頁面標記,自定義標記可以是傳統ASP/JSP標記,也可以是其它伺服器頁面標記,本發明的實現過程如圖1、圖2所示,S1.伺服器接收到客戶端的請求後向所述客戶端返回所述請求的網頁,該網頁設有標記引擎腳本(步驟100中);S2.所述伺服器根據所述網頁與用戶的交互信息向所述客戶端返回XML數據(步驟102中);S3.所述標記引擎腳本將所述XML數據解析為HTML數據(步驟104中)。下面以傳統ASP/JSP標記為例對實現AJAX網頁的開發過程進行描述。
首先,網頁前臺開發人員和後臺服務程序開發人員在開發AJAX網頁時,需要協商約定前後臺的數據接口,可以用實例數據的形式設計出XML數據的模板。XML與HTML類似,它是一種使用標籤的標記語言,為數據描述提供了獨立於平臺和應用程式的格式。儘管XML和HTML都使用標記,但是它們是不同的,HTML是把數據和顯示融合在一起的,不可分離,而XML則可以把數據和顯示分離,即使用HTML進行顯示,把數據放在XML了中。這樣,在不同的平臺上顯示什麼樣的網頁,是HTML的事情,放在.htm或.html文件中,而數據是不變的,都存放在.xml文件中。後臺開發人員則可以根據上述XML模板的約定開發後臺程序。
而前臺開發人員就可以採用傳統的ASP/JSP標記開發技術設計網頁,完成基本頁面的功能設計後,就開始創建XML文檔。XML文檔包含了一整套對應於HTML頁面的字符串。為了將.xml文件中的數據賦值給變量,並將變量值插入到HTML流中,就需要在ASP/JSP頁面中插入標記引擎腳本,通過標記引擎腳本加載XML模板數據,並將XML數據轉換為普通的HTML內容,即使是早期版本的瀏覽器也支持XML,同樣能夠看到這些動態網頁內容。
標記引擎腳本的實現過程如圖3所示,調用所述標記引擎腳本接收所述XML數據(步驟300中),並判斷網頁是否初次進行標記解析(步驟302中),如果是,則通過瀏覽器提供的API接口獲得網頁的HTML代碼(步驟304中),並保存原始的HTML代碼(步驟306中),如果不是,則取回上次解析前的原始HTML代碼(步驟308中);然後用遞歸算法分析獲得的所述HTML代碼並逐層分解出其中的ASP/JSP標記(步驟310中);根據逐層分解出的所述ASP/JSP標記找出所述HTML代碼中需要使用的循環、判斷和替換邏輯以及所述使用的循環、判斷和替換邏輯與所述XML數據之間的映射關係(步驟312中);通過逐層遞歸用所述XML數據填充需要替換的所述ASP/JSP標記,生成最終的HTML代碼(步驟314中);通過瀏覽器提供的API接口將所述生成的HTML代碼回寫到頁面上(步驟316中)。因此,用戶通過客戶端瀏覽器控制項與靜態頁面進行交互時,伺服器只需返回用戶所請求的那部分頁面XML數據,而不是返回整個頁面的HTML數據,避免了在網絡上發送那些沒有改變的頁面信息,實現了能在不刷新整個頁面的前提下便可向伺服器傳輸或讀寫數據維護數據。當伺服器返回XML數據到靜態頁面上時,靜態頁面即可以調用標記引擎腳本將其解析為HTML數據以實現向用戶展現動態網頁內容。最後,前後臺開發人員在伺服器與客戶端連調時,用動態XML數據替換設計過程中所使用的XML模板數據,這樣就可完成了AJAX網頁的開發。將運用了異步數據加載技術、XML以及JavaScript的等編程技術的網頁稱為AJAX網頁。
以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種實現AJAX網頁的方法,其特徵在於,包括以下步驟S1.伺服器接收到客戶端的請求後向所述客戶端返回所述請求的網頁,該網頁設有標記引擎腳本;S2.所述伺服器根據所述網頁與用戶的交互信息向所述客戶端返回XML數據;S3.所述標記引擎腳本將所述XML數據解析為HTML數據。
2.根據權利要求1所述的方法,其特徵在於,所述網頁上使用定義標記。
3.根據權利要求2所述的方法,其特徵在於,在步驟S1之前,還包括根據前後臺數據接口約定,確定XML模板;根據所述XML模板開發後臺程序;採用自定義標記設計網頁並通過標記引擎腳本加載所述XML模板數據;在伺服器與客戶端連調時,用動態XML數據替換設計過程中所使用的XML模板數據。
4.根據權利要求3所述的方法,其特徵在於,所述步驟S3包括S31.調用所述標記引擎腳本接收所述XML數據並判斷網頁是否初次進行標記解析,如果是,則執行步驟S32,如果不是,則執行步驟S33;S32.通過瀏覽器提供的應用編程接口獲得網頁的HTML代碼並保存原始的HTML代碼;S33.取回上次解析前的原始HTML代碼;S34.用遞歸算法分析獲得所述HTML代碼並逐層分解出其中的自定義標記;S35.根據逐層分解出的所述自定義標記找出所述HTML代碼中需要使用的循環、判斷和替換邏輯以及所述使用的循環、判斷和替換邏輯與所述XML數據之間的映射關係;S36.通過逐層遞歸用所述XML數據填充需要替換的所述自定義標記,生成最終的HTML代碼;S37.通過瀏覽器提供的應用編程接口將所述生成的HTML代碼返回到客戶端。
5.根據權利要求1所述的方法,其特徵在於,所述步驟S2中,所述交互信息是用戶請求動態展現網頁內容信息或用戶輸入的數據信息。
6.根據權利要求1-5任意一條所述的方法,其特徵在於,所述標記引擎腳本是用JavaScript腳本編寫。
7.根據權利要求6所述的方法,其特徵在於,所述自定義標記是用於控制頁面解析邏輯的,瀏覽器無法自行解析的,則由伺服器解析的頁面標記。
8.根據權利要求7所述的方法,其特徵在於,所述自定義標記是ASP/JSP標記。
全文摘要
本發明涉及一種實現AJAX網頁的方法,包括以下步驟S1.伺服器接收到客戶端瀏覽器的HTTP請求後向所述客戶端瀏覽器返回自定義標記的靜態網頁與標記引擎腳本;S2.所述伺服器處理根據所述自定義標記的靜態網頁與用戶的交互信息向所述自定義標記的靜態網頁返回與用戶交互的那部分XML數據;S3.所述標記引擎腳本將所述XML數據解析為HTML數據以完成動態網頁展現。實施本發明方法,使得網頁開發人員可以採用傳統的頁面標記技術開發AJAX動態頁面,減少了開發工作量,並提高了軟體的可靠性,帶來更好的用戶體驗,進一步促進頁面展現和數據的分離。
文檔編號H04L29/06GK1987850SQ20051012106
公開日2007年6月27日 申請日期2005年12月20日 優先權日2005年12月20日
發明者黃希彤 申請人:騰訊科技(深圳)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀