專利名稱:實現(xiàn)萬維網(wǎng)頁面樹形結(jié)構(gòu)數(shù)據(jù)展示的方法、系統(tǒng)及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及萬維網(wǎng)(WEB,World Wide Web)頁面樹形結(jié)構(gòu)展示技術(shù),尤其涉及基于 可擴(kuò)展標(biāo)記語言(XML, XML-eXtensible Marked Language)的實現(xiàn)WEB頁面樹形結(jié)構(gòu)數(shù)據(jù) 展示的方法、系統(tǒng)及裝置。
背景技術(shù):
隨著因特網(wǎng)的高速發(fā)展,WEB網(wǎng)站逐漸成為人們?nèi)粘9ぷ骱蜕钪斜夭豢缮俚陌?侶,隨著WEB2. 0標(biāo)準(zhǔn)的逐漸推廣,在瀏覽器/服務(wù)器(B/S,Browser/Server)應(yīng)用系統(tǒng)中采 用樹形結(jié)構(gòu)展示目錄和數(shù)據(jù)的需求也日趨強(qiáng)烈。眾所周知,樹形結(jié)構(gòu)指的是數(shù)據(jù)元素之間 存在著"一對多"的樹形關(guān)系的數(shù)據(jù)結(jié)構(gòu),并已經(jīng)在多個領(lǐng)域中被廣泛使用,譬如文件系統(tǒng) 中文件的管理結(jié)構(gòu),家族族譜等。 XML是一種簡單的數(shù)據(jù)存儲語言,它使用一系列簡單的標(biāo)記來描述數(shù)據(jù),而這些標(biāo) 記可以用方便的方式來建立,雖然XML占用的空間比二進(jìn)制數(shù)據(jù)占用的空間更多,但XML極 其簡單易于掌握和使用。 XML的成功并不在于它容易被人們書寫和閱讀,而在于它從根本上解決了應(yīng)用系 統(tǒng)之間的信息交換。這是因為XML滿足了兩方面基本的需求
(1)將數(shù)據(jù)和表達(dá)形式分離 就象天氣預(yù)報的信息可以采用不同的形式顯示在不同的設(shè)備上,譬如顯示在電 視、手機(jī)或者其它設(shè)備等。
(2)在不同的應(yīng)用程序之間進(jìn)行傳輸數(shù)據(jù) 電子商務(wù)數(shù)據(jù)交換的與日倶增使得這種需求越來越緊迫。 可擴(kuò)展樣式表語言轉(zhuǎn)換(XSLT, extensible Stylesheet LanguageTransformation),根據(jù)W3C的規(guī)范說明書(http:〃www. w3. org/TR/xslt),最早 設(shè)計XSLT的用意是協(xié)助將XML文檔(document)轉(zhuǎn)換為其它文檔。但是隨著技術(shù)的發(fā)展, XSLT已不僅僅用于將XML轉(zhuǎn)換為超文本標(biāo)記語言(HTML, Hyper-Text Markup Language) 或其它文本格式的文檔,其更全面的定義是"一種用來轉(zhuǎn)換XML文檔結(jié)構(gòu)的語言",亦即通 過將XML文檔與相應(yīng)的XSLT相匹配,將XML文檔轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)表達(dá)形式。也就是說, 為了使數(shù)據(jù)便于人們的閱讀理解,需要將信息以一定的方式顯示出來或者打印出來,例如 將信息數(shù)據(jù)變成一個HTML文件, 一個PDF文件,甚至是一段聲音;同樣,為了使數(shù)據(jù)適合不 同的應(yīng)用程序,必須能夠?qū)?shù)據(jù)從一種格式轉(zhuǎn)換為另一種格式,比如需求格式可能是一個 文本文件,一個結(jié)構(gòu)化查詢語言(SQL, Structured Query Language)語句, 一個超文本傳輸 協(xié)議(HTTP, Hyper-Text Transmission Protocol)信息, 一定順序的數(shù)據(jù)調(diào)用等。而XSLT 就是上述用來實現(xiàn)這種轉(zhuǎn)換功能的語言。譬如將XML轉(zhuǎn)換為HTML,是目前XSLT最主要的功 能。 目前實現(xiàn)WEB系統(tǒng)樹形結(jié)構(gòu)數(shù)據(jù)展示的方法中,如果樹形結(jié)構(gòu)展示的數(shù)據(jù)內(nèi)容是 靜態(tài)的,數(shù)據(jù)級數(shù)也是固定的,通常采用的方法是以HTML的形式寫入,通過JavaScript來控制該樹形結(jié)構(gòu)被點擊后的展示,可以一級一級地將樹形結(jié)構(gòu)展示,也可以將樹形結(jié)構(gòu)全 部折疊和展開;但如果數(shù)據(jù)諸多,則HTML頁面冗余復(fù)雜,不利于二次擴(kuò)展和修改;如果樹形 結(jié)構(gòu)中展示的數(shù)據(jù)內(nèi)容是動態(tài)的,則通常數(shù)據(jù)內(nèi)容是從數(shù)據(jù)庫提取的,并且數(shù)據(jù)級數(shù)也是 未知的,這種情況比較復(fù)雜,常用的解決方法是采用AJAX (即Asynchronous JavaScript and XML)技術(shù),與動態(tài)HTML標(biāo)記JavaScript腳本組合,以列表的形式將數(shù)據(jù)顯示為樹形結(jié)構(gòu), 并且為了提高效率可以設(shè)計成先顯示二級的數(shù)據(jù),然后每點擊其中一級,則自動從數(shù)據(jù)庫 提取相應(yīng)的數(shù)據(jù),再顯示出該級的下級數(shù)據(jù)。由于使用AJAX技術(shù)使得頁面可以局部刷新讓 用戶感覺不到頁面的刷新變化,在一定程度上提高了頁面展示的效率。但問題在于,每次點 擊都要向數(shù)據(jù)庫提出數(shù)據(jù)請求,這無疑增加了數(shù)據(jù)庫的響應(yīng)負(fù)擔(dān),如果遇到了連接數(shù)據(jù)庫 延時或者數(shù)據(jù)庫連接異常的情況,則會出現(xiàn)數(shù)據(jù)展示受阻的情況,從而嚴(yán)重地影響了用戶 體驗。現(xiàn)有的專利文獻(xiàn)記載有專利申請?zhí)枮镃N200710122116. 2的中國專利申請"基于 ajax與html標(biāo)記形成樹形顯示結(jié)構(gòu)的方法",該專利申請存在以下技術(shù)上的不足
第一,它沒有區(qū)分動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù),如果遇到數(shù)據(jù)源不是來自數(shù)據(jù)庫(DB, Data Bank)而是來自人工后臺維護(hù)的xml,則此方法無法解決,并且樣式的控制局限于 HTML中,不利于擴(kuò)展和維護(hù)。 第二,在其實現(xiàn)中采用AJAX技術(shù),利用異步調(diào)用來提高用戶的樹狀結(jié)構(gòu)展示效果 體驗,數(shù)據(jù)是在樹狀結(jié)構(gòu)被點擊時通過訪問數(shù)據(jù)庫獲取,但由于數(shù)據(jù)在來源上完全依賴于 具體的數(shù)據(jù)庫,數(shù)據(jù)庫的響應(yīng)直接影響了展示頁面的響應(yīng)效果,同時加大了數(shù)據(jù)庫服務(wù)器 的負(fù)擔(dān),提高了系統(tǒng)的復(fù)雜度,加大了系統(tǒng)的開發(fā)難度,并且降低了系統(tǒng)的可靠性。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種實現(xiàn)萬維網(wǎng)頁面樹形結(jié)構(gòu)數(shù)據(jù)展示的方 法、系統(tǒng)及裝置,能夠減輕數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)響應(yīng)負(fù)擔(dān)。 為了解決上述技術(shù)問題,本發(fā)明提供了一種實現(xiàn)萬維網(wǎng)(WEB)頁面樹形結(jié)構(gòu)數(shù)據(jù) 展示的方法,包括 服務(wù)端在啟動WEB系統(tǒng)后,通過經(jīng)常性地訪問數(shù)據(jù)庫服務(wù)器為樹形結(jié)構(gòu)創(chuàng)建和/ 或更新所需要的可擴(kuò)展標(biāo)記語言(XML)數(shù)據(jù)文件,以承載和/或刷新樹形結(jié)構(gòu)中的動態(tài)數(shù) 據(jù)。 進(jìn)一步地,該方法還包括 服務(wù)端通過后臺管理平臺人工創(chuàng)建無數(shù)據(jù)內(nèi)容的XML數(shù)據(jù)文件,和/或?qū)ML數(shù)
據(jù)文件中承載的靜態(tài)數(shù)據(jù)進(jìn)行人工修改及編輯。 進(jìn)一步地,該方法還包括 服務(wù)端根據(jù)客戶端對WEB頁面的訪問請求,采用與XML數(shù)據(jù)文件匹配的可擴(kuò)展樣 式表語言轉(zhuǎn)換(XSLT)文件將XML數(shù)據(jù)文件轉(zhuǎn)換為可被WEB瀏覽器識別的文檔,并隨時根據(jù) 客戶端的點擊展示相應(yīng)的樹形結(jié)構(gòu)節(jié)點和/或數(shù)據(jù)。
進(jìn)一步地,服務(wù)端 采用獨立的數(shù)據(jù)采集線程定時地訪問所述數(shù)據(jù)庫服務(wù)器,創(chuàng)建和/或更新的所述 XML數(shù)據(jù)文件在客戶端訪問盲點時插入和/或替換;
在將XML數(shù)據(jù)文件進(jìn)行所述轉(zhuǎn)換的過程中,采用XPath語言查找和定位XML數(shù)據(jù) 文件中的節(jié)點和/或數(shù)據(jù);可被WEB瀏覽器識別的文檔為超文本標(biāo)記語言文檔和/或動態(tài) 超文本標(biāo)記語言文檔; 在進(jìn)行展示相應(yīng)的樹形結(jié)構(gòu)節(jié)點和/或數(shù)據(jù)時,采用JavaScript語言控制樹形結(jié) 構(gòu)節(jié)點的展開和/或折疊。 進(jìn)一步地,服務(wù)端在更新XML數(shù)據(jù)文件之前,還包括 根據(jù)配置文件若確定在啟動WEB系統(tǒng)后需要重寫XML數(shù)據(jù)文件,則進(jìn)行相應(yīng)的重 寫操作。 為了解決上述技術(shù)問題,本發(fā)明提供了一種實現(xiàn)萬維網(wǎng)(WEB)頁面樹形結(jié)構(gòu)數(shù)據(jù) 展示的系統(tǒng),包括服務(wù)端和客戶端,其中 服務(wù)端,用于通過經(jīng)常性地訪問數(shù)據(jù)庫服務(wù)器為樹形結(jié)構(gòu)創(chuàng)建和/或更新所需要 的可擴(kuò)展標(biāo)記語言(XML)數(shù)據(jù)文件,以承載和/或刷新樹形結(jié)構(gòu)中的動態(tài)數(shù)據(jù);或者,通過 后臺管理平臺人工創(chuàng)建無數(shù)據(jù)內(nèi)容的XML數(shù)據(jù)文件,和/或?qū)ML數(shù)據(jù)文件中承載的靜態(tài) 數(shù)據(jù)進(jìn)行人工修改編輯; 客戶端,用于向服務(wù)端提出WEB頁面的訪問請求。 進(jìn)一步地,服務(wù)端包括所述數(shù)據(jù)庫服務(wù)器和WEB頁面樹形結(jié)構(gòu)數(shù)據(jù)展示裝置,其 中WEB頁面樹形結(jié)構(gòu)數(shù)據(jù)展示裝置包括系統(tǒng)啟動模塊、數(shù)據(jù)采集模塊以及后臺管理模塊, 其中 數(shù)據(jù)庫服務(wù)器,用于存儲WEB頁面樹形結(jié)構(gòu)數(shù)據(jù); 系統(tǒng)啟動模塊,用于在啟動WEB系統(tǒng)后,根據(jù)配置文件若判斷樹形結(jié)構(gòu)中為動態(tài) 數(shù)據(jù),則向數(shù)據(jù)采集模塊輸出初始數(shù)據(jù)生成指示和/或動態(tài)數(shù)據(jù)刷新指示;或者,若判斷 樹形結(jié)構(gòu)中為靜態(tài)數(shù)據(jù),則向后臺管理模塊輸出初始文件生成指示和/或人工維護(hù)文件指 示; 數(shù)據(jù)采集模塊,用于根據(jù)初始數(shù)據(jù)生成指示和/或動態(tài)數(shù)據(jù)刷新指示定時訪問數(shù) 據(jù)庫服務(wù)器,創(chuàng)建和/或更新的所述XML數(shù)據(jù)文件在客戶端訪問盲點時插入和/或替換;
后臺管理模塊,用于根據(jù)初始文件生成指示和/或人工維護(hù)文件指示,生成無具 體數(shù)據(jù)內(nèi)容的XML數(shù)據(jù)文件和/或通過人工修改編輯XML數(shù)據(jù)文件。
進(jìn)一步地,還包括數(shù)據(jù)樣式控制模塊和數(shù)據(jù)展示模塊,其中
數(shù)據(jù)采集模塊將創(chuàng)建和/或更新的XML數(shù)據(jù)文件輸出給數(shù)據(jù)樣式控制模塊,
后臺管理模塊將生成和/或修改編輯的XML數(shù)據(jù)文件輸出給數(shù)據(jù)樣式控制模塊;
數(shù)據(jù)樣式控制模塊,用于根據(jù)客戶端對WEB頁面的訪問請求,采用與XML數(shù)據(jù)文件 匹配的可擴(kuò)展樣式表語言轉(zhuǎn)換(XSLT)文件將XML數(shù)據(jù)文件轉(zhuǎn)換為可被WEB瀏覽器識別的 文檔,在該轉(zhuǎn)換的過程中采用XPath語言查找和定位XML數(shù)據(jù)文件中的節(jié)點和/或數(shù)據(jù);并 將轉(zhuǎn)換成的超文本標(biāo)記語言文檔和/或動態(tài)超文本標(biāo)記語言文檔輸出給數(shù)據(jù)展示模塊;
數(shù)據(jù)展示模塊,用于將輸入的文檔默認(rèn)的前兩級目錄展示給客戶端,并隨時根據(jù) 客戶端的點擊采用JavaScript語言控制所述樹形結(jié)構(gòu)節(jié)點的展開和/或折疊,以展示相應(yīng) 的節(jié)點和/或數(shù)據(jù); 客戶端在訪問WEB頁面時點擊相應(yīng)的樹形結(jié)構(gòu)節(jié)點和/或數(shù)據(jù)。 為了解決上述技術(shù)問題,本發(fā)明提供了一種實現(xiàn)萬維網(wǎng)(WEB)頁面樹形結(jié)構(gòu)數(shù)據(jù)展示的裝置,包括系統(tǒng)啟動模塊、數(shù)據(jù)采集模塊以及后臺管理模塊,其中 系統(tǒng)啟動模塊,用于在啟動WEB系統(tǒng)后,根據(jù)配置文件若判斷樹形結(jié)構(gòu)中為動態(tài)
數(shù)據(jù),則向數(shù)據(jù)采集模塊輸出初始數(shù)據(jù)生成指示和/或動態(tài)數(shù)據(jù)刷新指示;或者,若判斷 樹形結(jié)構(gòu)中為靜態(tài)數(shù)據(jù),則向后臺管理模塊輸出初始文件生成指示和/或人工維護(hù)文件指 示; 數(shù)據(jù)采集模塊,用于根據(jù)初始數(shù)據(jù)生成指示和/或動態(tài)數(shù)據(jù)刷新指示定時訪問數(shù) 據(jù)庫服務(wù)器,創(chuàng)建和/或更新可擴(kuò)展標(biāo)記語言(XML)數(shù)據(jù)文件,并在客戶端訪問盲點時插入 和/或替換XML數(shù)據(jù)文件; 后臺管理模塊,用于根據(jù)初始文件生成指示和/或人工維護(hù)文件指示,生成無具 體數(shù)據(jù)內(nèi)容的XML數(shù)據(jù)文件和/或通過人工修改編輯XML數(shù)據(jù)文件。
進(jìn)一步地,還包括數(shù)據(jù)樣式控制模塊和數(shù)據(jù)展示模塊,其中
數(shù)據(jù)采集模塊將創(chuàng)建和/或更新的XML數(shù)據(jù)文件輸出給數(shù)據(jù)樣式控制模塊,
后臺管理模塊將生成和/或修改編輯的XML數(shù)據(jù)文件輸出給數(shù)據(jù)樣式控制模塊;
數(shù)據(jù)樣式控制模塊,用于根據(jù)客戶端對WEB頁面的訪問請求,采用與XML數(shù)據(jù)文件 匹配的可擴(kuò)展樣式表語言轉(zhuǎn)換(XSLT)文件將XML數(shù)據(jù)文件轉(zhuǎn)換為可被WEB瀏覽器識別的 文檔,在轉(zhuǎn)換的過程中采用XPath語言查找和定位XML數(shù)據(jù)文件中的節(jié)點和/或數(shù)據(jù);并將 轉(zhuǎn)換成的超文本標(biāo)記語言文檔和/或動態(tài)超文本標(biāo)記語言文檔輸出給數(shù)據(jù)展示模塊;
數(shù)據(jù)展示模塊,用于將輸入的文檔默認(rèn)的前兩級目錄展示給客戶端,并隨時根據(jù) 客戶端的點擊采用JavaScript語言控制樹形結(jié)構(gòu)節(jié)點的展開和/或折疊,以展示相應(yīng)的節(jié) 點和/或數(shù)據(jù)。 本發(fā)明基于數(shù)據(jù)和表達(dá)樣式分離的方式,以XML作為樹形結(jié)構(gòu)的數(shù)據(jù)存儲載體, 其結(jié)構(gòu)清晰且便于修改和擴(kuò)展;同時采用XSLT作為樹形結(jié)構(gòu)的樣式控制,并以JavaScript 作為控制樹形結(jié)構(gòu)節(jié)點的展示和收縮,實現(xiàn)了一個動態(tài)、靈活的WEB樹形結(jié)構(gòu)數(shù)據(jù)展示。若 展示的數(shù)據(jù)是靜態(tài)的,則通過后臺管理進(jìn)行XML數(shù)據(jù)的增刪修改操作;若展示的數(shù)據(jù)是動 態(tài)的,則通過主動查詢數(shù)據(jù)庫服務(wù)器是否有數(shù)據(jù)更新來動態(tài)刷新數(shù)據(jù);由此能夠使得用戶 可以隨意點擊樹形結(jié)構(gòu)的上下級進(jìn)行數(shù)據(jù)展示,而無須在此時再向服務(wù)端發(fā)送請求,大大 提高了頁面的響應(yīng)速度和展示效率,從而極大地改善了用戶體驗。
圖1是本發(fā)明的實現(xiàn)萬維網(wǎng)頁面樹形結(jié)構(gòu)數(shù)據(jù)展示的方法實施例的流程圖;
圖2是本發(fā)明的實現(xiàn)萬維網(wǎng)頁面樹形結(jié)構(gòu)數(shù)據(jù)展示的系統(tǒng)實施例的結(jié)構(gòu)示意圖。
具體實施例方式
以下結(jié)合附圖和優(yōu)選實施例對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)地闡述。以下例舉的實 施例僅僅用于說明和解釋本發(fā)明,而不構(gòu)成對本發(fā)明技術(shù)方案的限制。 如圖1所示,是本發(fā)明提供的實現(xiàn)萬維網(wǎng)頁面樹形結(jié)構(gòu)數(shù)據(jù)展示的方法實施例的
流程,包括如下步驟 101 :服務(wù)端啟動WEB系統(tǒng); 即服務(wù)端將WEB服務(wù)器啟動。
102 :讀取WEB系統(tǒng)的配置文件; 該配置文件用于對WEB瀏覽器中的樹形結(jié)構(gòu)進(jìn)行一些配置,譬如配置XML數(shù)據(jù)文 件,配置樹形結(jié)構(gòu)中的數(shù)據(jù)屬性為動態(tài)還是靜態(tài),以及配置的XML數(shù)據(jù)文件是否需要在系 統(tǒng)啟動時重寫,等等。 103 :判斷是否已配置了樹形結(jié)構(gòu)所需要的XML數(shù)據(jù)文件,是則執(zhí)行步驟llO,否則 執(zhí)行步驟104 ; 104 :判斷樹形結(jié)構(gòu)中的數(shù)據(jù)是否為動態(tài)數(shù)據(jù),是則執(zhí)行步驟105,否則執(zhí)行步驟
111 ; 105 :從數(shù)據(jù)庫服務(wù)器讀取相應(yīng)的數(shù)據(jù)內(nèi)容,生成XML數(shù)據(jù)文件; 106 :經(jīng)常性地訪問數(shù)據(jù)庫服務(wù)器,以動態(tài)刷新文件內(nèi)樹形結(jié)構(gòu)被更新的數(shù)據(jù); 譬如定時訪問數(shù)據(jù)庫服務(wù)器,或者每執(zhí)行其它一些任務(wù)后訪問數(shù)據(jù)庫服務(wù)器,這
可以由程序來控制。 當(dāng)訪問數(shù)據(jù)庫服務(wù)器發(fā)現(xiàn)數(shù)據(jù)庫服務(wù)器數(shù)據(jù)更新后,生成一個新的XML文件,并 在客戶端訪問盲點時候進(jìn)行替換,而被替換的XML文件不作刪除,作為替換異常時備用。
107 :根據(jù)客戶端的訪問請求或根據(jù)配置文件將XML數(shù)據(jù)文件與適當(dāng)?shù)腦SLT文件 匹配; 108 :利用匹配的XSLT文件將XML數(shù)據(jù)文件轉(zhuǎn)換為另一可被瀏覽器識別的文檔 (譬如HTML或DHTML文檔),并默認(rèn)展示前兩級目錄傳輸給客戶端; XPath語言隸屬XSLT,是XSLT的重要組成部分,在轉(zhuǎn)換XML文檔時可能需要處理 其中樹形結(jié)構(gòu)節(jié)點上的數(shù)據(jù),采用XPath語言查找和定位XML文檔中的信息數(shù)據(jù)。
109 :接受客戶端對WEB頁面的任意點擊,將樹形結(jié)構(gòu)展開或折疊,展示結(jié)構(gòu)中的 數(shù)據(jù),結(jié)束流程; 可采用JavaScript作為控制樹狀節(jié)點的展開和折疊,實現(xiàn)了一個動態(tài)的靈活的 樹狀結(jié)構(gòu)。 110 :根據(jù)配置文件確定XML數(shù)據(jù)文件是否需要在系統(tǒng)啟動后重寫,需要則進(jìn)行相 應(yīng)的重寫操作;然后執(zhí)行步驟106 ; 111 :生成默認(rèn)的無具體數(shù)據(jù)內(nèi)容的XML數(shù)據(jù)文件; 112 :根據(jù)需要和變化通過后臺管理平臺進(jìn)行人工修改XML數(shù)據(jù)文件;然后執(zhí)行步 驟107。 譬如需要增加、修改或者刪除節(jié)點和/或數(shù)據(jù),通過后臺管理平臺進(jìn)行人工修改。
在WEB系統(tǒng)啟動時,通過一個獨立的數(shù)據(jù)采集線程來控制XML數(shù)據(jù)文件的創(chuàng)建和 更新工作,可以根據(jù)配置文件來設(shè)置訪問數(shù)據(jù)庫服務(wù)器的時間,此時間間隔不易過短,否則 影響數(shù)據(jù)庫服務(wù)器的性能。 建議根據(jù)實際樹形結(jié)構(gòu)中數(shù)據(jù)更新的情況,采取每半小時或一小時更新一次比較 合理。同時,由于可以更靈活的通過后臺管理界面直接來手工操作修改XML數(shù)據(jù)文件,提高 了系統(tǒng)的可擴(kuò)展性。 當(dāng)客戶端訪問WEB的樹形結(jié)構(gòu)頁面時,系統(tǒng)會將采用XSLT和XML生成的HTML或 DHTML文檔響應(yīng)給用戶,并且展示出樹形結(jié)構(gòu)下默認(rèn)的包括根在內(nèi)的前兩級節(jié)點。根據(jù)客戶 端對關(guān)鍵節(jié)點的點擊,將執(zhí)行展開或者折疊當(dāng)前節(jié)點的操作。當(dāng)響應(yīng)客戶端點擊進(jìn)行節(jié)點展開時候,由于XML數(shù)據(jù)文件中的數(shù)據(jù)已經(jīng)完成刷新存儲,故此時無須現(xiàn)向服務(wù)器發(fā)送請 求來調(diào)用數(shù)據(jù)庫服務(wù)器數(shù)據(jù),而可直接根據(jù)需要展示文件中相應(yīng)的數(shù)據(jù)內(nèi)容。由此極大程 度地縮短了客戶端等候的時間,從而大幅提升了用戶體驗。 圖2表示出發(fā)明提供的實現(xiàn)萬維網(wǎng)頁面樹形結(jié)構(gòu)數(shù)據(jù)展示的系統(tǒng)實施例的結(jié)構(gòu), 該系統(tǒng)包括服務(wù)端和客戶端,其中 服務(wù)端,用于通過經(jīng)常性地訪問數(shù)據(jù)庫服務(wù)器為所述樹形結(jié)構(gòu)創(chuàng)建和/或更新所
需要的可擴(kuò)展標(biāo)記語言(XML)數(shù)據(jù)文件,以承載和/或刷新所述樹形結(jié)構(gòu)中的動態(tài)數(shù)據(jù);根
據(jù)客戶端的訪問請求,采用與XML數(shù)據(jù)文件匹配的XSLT文件將XML數(shù)據(jù)文件轉(zhuǎn)換為另一可
被瀏覽器識別類型的文檔,并隨時根據(jù)客戶端點擊展示樹形結(jié)構(gòu)中的數(shù)據(jù)。 服務(wù)端或者通過后臺管理平臺人工創(chuàng)建無數(shù)據(jù)內(nèi)容的XML數(shù)據(jù)文件,和/或?qū)λ?br>
述XML數(shù)據(jù)文件中承載的靜態(tài)數(shù)據(jù)進(jìn)行人工修改及編輯。 客戶端,用于通過點擊WEB樹形結(jié)構(gòu)頁面向服務(wù)端發(fā)出數(shù)據(jù)訪問請求。 圖2所示的服務(wù)端進(jìn)一步包括數(shù)據(jù)庫服務(wù)器和WEB頁面樹形結(jié)構(gòu)數(shù)據(jù)展示裝置,
其中WEB頁面樹形結(jié)構(gòu)數(shù)據(jù)展示裝置包括系統(tǒng)啟動模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)樣式控制模
塊、數(shù)據(jù)展示模塊以及后臺管理模塊,其中 數(shù)據(jù)庫服務(wù)器,用于存儲WEB頁面樹形結(jié)構(gòu)的數(shù)據(jù); 系統(tǒng)啟動模塊,用于在啟動WEB系統(tǒng)后,根據(jù)讀取的配置文件在判斷樹形結(jié)構(gòu)中
為動態(tài)數(shù)據(jù)時,如已配置樹形結(jié)構(gòu)所需要的XML數(shù)據(jù)文件,則向數(shù)據(jù)采集模塊輸出動態(tài)數(shù)
據(jù)刷新指示;如未配置XML數(shù)據(jù)文件,則向數(shù)據(jù)采集模塊輸出初始數(shù)據(jù)生成指示; 系統(tǒng)啟動模塊在判斷樹形結(jié)構(gòu)中為靜態(tài)數(shù)據(jù)時,如已配置XML數(shù)據(jù)文件,則向后
臺管理模塊輸出人工維護(hù)文件指示;如未配置XML數(shù)據(jù)文件,則向后臺管理模塊輸出初始
文件生成指示。 當(dāng)然,系統(tǒng)啟動模塊若判斷已配置XML數(shù)據(jù)文件,且需要在系統(tǒng)啟動后重寫該文
件,則在進(jìn)行重寫操作后向數(shù)據(jù)采集模塊或后臺管理模塊發(fā)出相應(yīng)的指示。 數(shù)據(jù)采集模塊,用于根據(jù)輸入的動態(tài)數(shù)據(jù)刷新指示經(jīng)常性地訪問數(shù)據(jù)庫服務(wù)器,
以動態(tài)刷新文件內(nèi)樹形結(jié)構(gòu)更新的數(shù)據(jù),然后向數(shù)據(jù)樣式控制模塊輸出刷新的XML文件; 數(shù)據(jù)采集模塊譬如定時訪問數(shù)據(jù)庫服務(wù)器,或者每執(zhí)行其它一些任務(wù)后訪問數(shù)據(jù)
庫服務(wù)器。 或者,數(shù)據(jù)采集模塊根據(jù)輸入的初始數(shù)據(jù)生成指示從數(shù)據(jù)庫服務(wù)器讀取相應(yīng)的數(shù)
據(jù)內(nèi)容,生成XML數(shù)據(jù)文件,然后向數(shù)據(jù)樣式控制模塊輸出生成的XML文件。 數(shù)據(jù)采集模塊當(dāng)訪問數(shù)據(jù)庫服務(wù)器發(fā)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)更新后,生成一個新的XML文
件,并在客戶端訪問盲點時候進(jìn)行替換,而被替換的XML文件不作刪除,作為替換異常時備用。 后臺管理模塊,用于根據(jù)輸入的初始文件生成指示和/或人工維護(hù)文件指示,生 成默認(rèn)的無具體數(shù)據(jù)內(nèi)容的XML數(shù)據(jù)文件和/或通過人工修改XML數(shù)據(jù)文件,然后向數(shù)據(jù) 樣式控制模塊輸出操作過的XML數(shù)據(jù)文件; 數(shù)據(jù)樣式控制模塊,用于根據(jù)客戶端的訪問請求或根據(jù)配置文件將輸入的XML數(shù) 據(jù)文件與適當(dāng)?shù)腦SLT文件匹配,并用匹配的XSLT文件將XML數(shù)據(jù)文件轉(zhuǎn)換為另一可被瀏 覽器識別的文檔,并輸出給數(shù)據(jù)展示模塊;
數(shù)據(jù)樣式控制模塊采用XPath查找和定位XML文檔中的信息數(shù)據(jù)。 數(shù)據(jù)展示模塊,用于將輸入的文檔默認(rèn)的前兩級目錄展示給客戶端,接受客戶端
對WEB頁面的任意點擊,將樹形結(jié)構(gòu)展開或折疊,展示結(jié)構(gòu)中的數(shù)據(jù)。 數(shù)據(jù)展示模塊采用JavaScript作為控制樹狀節(jié)點的展開和折疊,將一個動態(tài)、靈 活的樹狀結(jié)構(gòu)展示給客戶端。 通過以上實施例可以看出,本發(fā)明基于數(shù)據(jù)和表達(dá)樣式分離的方式,以XML作為 樹形結(jié)構(gòu)的數(shù)據(jù)存儲載體,結(jié)構(gòu)清晰且便于修改和擴(kuò)展;同時采用XSLT作為樹形結(jié)構(gòu)的樣 式控制,并以JavaScript作為控制樹形結(jié)構(gòu)節(jié)點的展示和收縮,實現(xiàn)了一個靈活的且能夠 同時兼顧XML動態(tài)、靜態(tài)數(shù)據(jù)的展示,使得用戶可以隨意點擊樹形結(jié)構(gòu)的上下級進(jìn)行數(shù)據(jù) 展示,大大提高了頁面的響應(yīng)速度和展示效率,以及極大地改善了用戶體驗。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種實現(xiàn)萬維網(wǎng)(WEB)頁面樹形結(jié)構(gòu)數(shù)據(jù)展示的方法,包括服務(wù)端在啟動WEB系統(tǒng)后,通過經(jīng)常性地訪問數(shù)據(jù)庫服務(wù)器為所述樹形結(jié)構(gòu)創(chuàng)建和/或更新所需要的可擴(kuò)展標(biāo)記語言(XML)數(shù)據(jù)文件,以承載和/或刷新所述樹形結(jié)構(gòu)中的動態(tài)數(shù)據(jù)。
2. 按照權(quán)利要求l所述的方法,其特征在于,還包括所述服務(wù)端通過后臺管理平臺人工創(chuàng)建無數(shù)據(jù)內(nèi)容的XML數(shù)據(jù)文件,和/或?qū)λ鯴ML 數(shù)據(jù)文件中承載的靜態(tài)數(shù)據(jù)進(jìn)行人工修改及編輯。
3. 按照權(quán)利要求1或2所述的方法,其特征在于,還包括所述服務(wù)端根據(jù)客戶端對所述WEB頁面的訪問請求,采用與所述XML數(shù)據(jù)文件匹配的 可擴(kuò)展樣式表語言轉(zhuǎn)換(XSLT)文件將所述XML數(shù)據(jù)文件轉(zhuǎn)換為可被WEB瀏覽器識別的文 檔,并隨時根據(jù)所述客戶端的點擊展示相應(yīng)的樹形結(jié)構(gòu)節(jié)點和/或數(shù)據(jù)。
4. 按照權(quán)利要求3所述的方法,其特征在于,所述服務(wù)端采用獨立的數(shù)據(jù)采集線程定時地訪問所述數(shù)據(jù)庫服務(wù)器,創(chuàng)建和/或更新的所述XML 數(shù)據(jù)文件在客戶端訪問盲點時插入和/或替換;在將所述XML數(shù)據(jù)文件進(jìn)行所述轉(zhuǎn)換的過程中,采用XPath語言查找和定位所述XML 數(shù)據(jù)文件中的節(jié)點和/或數(shù)據(jù);所述可被WEB瀏覽器識別的文檔為超文本標(biāo)記語言文檔和 /或動態(tài)超文本標(biāo)記語言文檔;在進(jìn)行所述展示相應(yīng)的樹形結(jié)構(gòu)節(jié)點和/或數(shù)據(jù)時,采用JavaScript語言控制所述樹 形結(jié)構(gòu)節(jié)點的展開和/或折疊。
5. 按照權(quán)利要求1 、2或4任一項所述的方法,其特征在于,所述服務(wù)端在更新所述XML 數(shù)據(jù)文件之前,還包括根據(jù)配置文件若確定在啟動所述WEB系統(tǒng)后需要重寫所述XML數(shù)據(jù)文件,則進(jìn)行相應(yīng) 的重寫操作。
6. —種實現(xiàn)萬維網(wǎng)(WEB)頁面樹形結(jié)構(gòu)數(shù)據(jù)展示的系統(tǒng),包括服務(wù)端和客戶端,其中 所述服務(wù)端,用于通過經(jīng)常性地訪問數(shù)據(jù)庫服務(wù)器為所述樹形結(jié)構(gòu)創(chuàng)建和/或更新所需要的可擴(kuò)展標(biāo)記語言(XML)數(shù)據(jù)文件,以承載和/或刷新所述樹形結(jié)構(gòu)中的動態(tài)數(shù)據(jù);或 者,通過后臺管理平臺人工創(chuàng)建無數(shù)據(jù)內(nèi)容的XML數(shù)據(jù)文件,和/或?qū)λ鯴ML數(shù)據(jù)文件中 承載的靜態(tài)數(shù)據(jù)進(jìn)行人工修改編輯;所述客戶端,用于向所述服務(wù)端提出所述WEB頁面的訪問請求。
7. 按照權(quán)利要求6所述的系統(tǒng),其特征在于,所述服務(wù)端包括所述數(shù)據(jù)庫服務(wù)器和WEB 頁面樹形結(jié)構(gòu)數(shù)據(jù)展示裝置,其中所述WEB頁面樹形結(jié)構(gòu)數(shù)據(jù)展示裝置包括系統(tǒng)啟動模 塊、數(shù)據(jù)采集模塊以及后臺管理模塊,其中所述數(shù)據(jù)庫服務(wù)器,用于存儲所述WEB頁面樹形結(jié)構(gòu)數(shù)據(jù);所述系統(tǒng)啟動模塊,用于在啟動WEB系統(tǒng)后,根據(jù)配置文件若判斷樹形結(jié)構(gòu)中為所述 動態(tài)數(shù)據(jù),則向數(shù)據(jù)采集模塊輸出初始數(shù)據(jù)生成指示和/或動態(tài)數(shù)據(jù)刷新指示;或者,若判 斷所述樹形結(jié)構(gòu)中為所述靜態(tài)數(shù)據(jù),則向后臺管理模塊輸出初始文件生成指示和/或人工 維護(hù)文件指示;所述數(shù)據(jù)采集模塊,用于根據(jù)所述初始數(shù)據(jù)生成指示和/或所述動態(tài)數(shù)據(jù)刷新指示定 時訪問數(shù)據(jù)庫服務(wù)器,創(chuàng)建和/或更新的所述XML數(shù)據(jù)文件在客戶端訪問盲點時插入和/或替換;所述后臺管理模塊,用于根據(jù)所述初始文件生成指示和/或所述人工維護(hù)文件指示, 生成無具體數(shù)據(jù)內(nèi)容的XML數(shù)據(jù)文件和/或通過人工修改編輯所述XML數(shù)據(jù)文件。
8. 按照權(quán)利要求7所述的系統(tǒng),其特征在于,還包括數(shù)據(jù)樣式控制模塊和數(shù)據(jù)展示模 塊,其中所述數(shù)據(jù)采集模塊將創(chuàng)建和/或更新的所述XML數(shù)據(jù)文件輸出給所述數(shù)據(jù)樣式控制模塊,所述后臺管理模塊將生成和/或修改編輯的所述XML數(shù)據(jù)文件輸出給所述數(shù)據(jù)樣式控 制模塊;所述數(shù)據(jù)樣式控制模塊,用于根據(jù)客戶端對所述WEB頁面的訪問請求,采用與所述XML 數(shù)據(jù)文件匹配的可擴(kuò)展樣式表語言轉(zhuǎn)換(XSLT)文件將所述XML數(shù)據(jù)文件轉(zhuǎn)換為可被WEB 瀏覽器識別的文檔,在所述轉(zhuǎn)換的過程中采用XPath語言查找和定位所述XML數(shù)據(jù)文件中 的節(jié)點和/或數(shù)據(jù);并將轉(zhuǎn)換成的超文本標(biāo)記語言文檔和/或動態(tài)超文本標(biāo)記語言文檔輸 出給所述數(shù)據(jù)展示模塊;所述數(shù)據(jù)展示模塊,用于將輸入的文檔默認(rèn)的前兩級目錄展示給客戶端,并隨時根據(jù) 所述客戶端的點擊采用JavaScript語言控制所述樹形結(jié)構(gòu)節(jié)點的展開和/或折疊,以展示 相應(yīng)的節(jié)點和/或數(shù)據(jù);所述客戶端在訪問所述WEB頁面時點擊相應(yīng)的樹形結(jié)構(gòu)節(jié)點和/或數(shù)據(jù)。
9. 一種實現(xiàn)萬維網(wǎng)(WEB)頁面樹形結(jié)構(gòu)數(shù)據(jù)展示的裝置,包括系統(tǒng)啟動模塊、數(shù)據(jù)采 集模塊以及后臺管理模塊,其中所述系統(tǒng)啟動模塊,用于在啟動WEB系統(tǒng)后,根據(jù)配置文件若判斷樹形結(jié)構(gòu)中為動態(tài) 數(shù)據(jù),則向數(shù)據(jù)采集模塊輸出初始數(shù)據(jù)生成指示和/或動態(tài)數(shù)據(jù)刷新指示;或者,若判斷所 述樹形結(jié)構(gòu)中為靜態(tài)數(shù)據(jù),則向后臺管理模塊輸出初始文件生成指示和/或人工維護(hù)文件 指示;所述數(shù)據(jù)采集模塊,用于根據(jù)所述初始數(shù)據(jù)生成指示和/或所述動態(tài)數(shù)據(jù)刷新指示定 時訪問數(shù)據(jù)庫服務(wù)器,創(chuàng)建和/或更新可擴(kuò)展標(biāo)記語言(XML)數(shù)據(jù)文件,并在客戶端訪問盲 點時插入和/或替換所述XML數(shù)據(jù)文件;所述后臺管理模塊,用于根據(jù)所述初始文件生成指示和/或所述人工維護(hù)文件指示, 生成無具體數(shù)據(jù)內(nèi)容的XML數(shù)據(jù)文件和/或通過人工修改編輯所述XML數(shù)據(jù)文件。
10. 按照權(quán)利要求9所述的裝置,其特征在于,還包括數(shù)據(jù)樣式控制模塊和數(shù)據(jù)展示模 塊,其中所述數(shù)據(jù)采集模塊將創(chuàng)建和/或更新的所述XML數(shù)據(jù)文件輸出給所述數(shù)據(jù)樣式控制模塊,所述后臺管理模塊將生成和/或修改編輯的所述XML數(shù)據(jù)文件輸出給所述數(shù)據(jù)樣式控 制模塊;所述數(shù)據(jù)樣式控制模塊,用于根據(jù)客戶端對所述WEB頁面的訪問請求,采用與所述XML 數(shù)據(jù)文件匹配的可擴(kuò)展樣式表語言轉(zhuǎn)換(XSLT)文件將所述XML數(shù)據(jù)文件轉(zhuǎn)換為可被WEB 瀏覽器識別的文檔,在所述轉(zhuǎn)換的過程中采用XPath語言查找和定位所述XML數(shù)據(jù)文件中 的節(jié)點和/或數(shù)據(jù);并將轉(zhuǎn)換成的超文本標(biāo)記語言文檔和/或動態(tài)超文本標(biāo)記語言文檔輸出給所述數(shù)據(jù)展示模塊;所述數(shù)據(jù)展示模塊,用于將輸入的文檔默認(rèn)的前兩級目錄展示給所述客戶端,并隨時 根據(jù)所述客戶端的點擊采用JavaScript語言控制所述樹形結(jié)構(gòu)節(jié)點的展開和/或折疊,以 展示相應(yīng)的節(jié)點和/或數(shù)據(jù)。
全文摘要
本發(fā)明披露了一種實現(xiàn)萬維網(wǎng)頁面樹形結(jié)構(gòu)數(shù)據(jù)展示的方法、系統(tǒng)及裝置,其中方法包括服務(wù)端在啟動WEB系統(tǒng)后,通過經(jīng)常性地訪問數(shù)據(jù)庫服務(wù)器為樹形結(jié)構(gòu)創(chuàng)建和/或更新所需要的XML數(shù)據(jù)文件,以承載和/或刷新樹形結(jié)構(gòu)中的動態(tài)數(shù)據(jù)。本發(fā)明能夠使得用戶可以隨意點擊樹形結(jié)構(gòu)的上下級進(jìn)行數(shù)據(jù)展示,而無須在此時再向服務(wù)端發(fā)送請求,由此大大提高了頁面的響應(yīng)速度和展示效率,從而極大地改善了用戶體驗。
文檔編號G06F17/30GK101763423SQ20101000108
公開日2010年6月30日 申請日期2010年1月21日 優(yōu)先權(quán)日2010年1月21日
發(fā)明者程寶 申請人:中興通訊股份有限公司