?

無憂論文網

搜索
當前位置:無憂論文網 > 期刊資訊 > 經濟類 >
  • 經濟類

Web應用中的客戶端緩存技術研究

發布日期:2016-08-27責任編輯:lgg點擊:

  • 刊名:
  • 雜志級別:-
  • CN刊號:
  • ISSN刊號:
  • 周期:
1 引言 
 
1.1  研究背景及意義 
互聯網的蓬勃發展與信息技術的不斷變革推動著信息化時代的來臨,層出不窮的Web 應用逐漸滲透到了人們生活的方方面面,為人們提供便捷獲取信息與服務的途徑。從單向信息傳遞的 Web1.0 時代到“以人為本”、實現雙向交互的 Web2.0 時代再到當下熱議的“個性化、精準化和智能化”的 Web3.0 時代[1],Web 應用從最初滿足用戶獲取簡單信息需求的單一靜態文檔形式逐步朝著交互實時且更為復雜、功能強大且不斷擴展、頁面更加豐富而多彩的方向前進。在整個 Web 應用發展的過程中,用戶扮演著越來越重要的角色,功能豐富、交互友好、頁面絢麗的 Web 應用以一種更為注重用戶體驗的方式滿足并超越用戶預期,提供更加人性化服務的同時也為用戶帶來了較為良好的用戶體驗[2]。 然而,Web 應用的發展也面臨著許多挑戰。一方面,Web 應用功能的不斷擴展,客戶端的豐富多樣化,大量的腳本和樣式文件使得 Web 應用變得龐大而復雜。而且,隨著應用的普及,呈幾何級數增長的用戶訪問量,頻繁的查詢和重復計算請求加重了服務器的負載。另一方面,在不穩定的網絡環境和帶寬的限制下,比如越來越普及的無線網絡,用戶數量增長帶來的頻繁而大量的請求會引起網絡擁塞,頁面響應遲緩甚至連接中斷,用戶等待時間延長,影響用戶體驗。 緩存技術是一種將用戶頻繁訪問的數據存儲在網絡中的關鍵節點(包含客戶端)的技術[3],它可以有效減輕 Web 服務器負載壓力,降低網絡擁堵,加快響應速度,是提升 Web 應用性能的途徑之一。客戶端緩存的主要思想是基于用戶訪問的時間局部性原理[4][5],將用戶最近訪問過的資源副本保存在客戶端,當該資源被再次訪問時,會檢查本地緩存中是否命中,進而從客戶端緩存中直接讀取或從 Web 服務器端獲取更新的版本同時更新本地緩存。開發 Web 應用時將客戶端緩存納入考慮,實現本地化存儲,可以緩解服務器壓力,節省帶寬,并提升應用的流暢性。 
........
 
1.2  國內外研究現狀
緩存是為了高效檢索數據并提高數據利用率而開辟的一個用于保存數據的空間。應用緩存技術,將用戶頻繁訪問的數據在 Web 的關鍵節點上保存一個副本,當用戶再次訪問該數據時,不需要連接至源服務器就可以通過讀取緩存來獲得數據的副本,這樣就可以減輕服務器的處理壓力、降低網絡擁堵和提高響應效率[3][6]。現在眾多Web 應用都采用了數據緩存技術,極大提高了數據檢索效率。有國外研究學者將數據緩存大致劃分為三類[7]:客戶端數據緩存、集中式數據緩存和分布式數據緩存。客戶端數據緩存是 Internet 中接收數據的一方即客戶端建立一個數據緩存區,對 HTTP 請求返回的數據進行緩存。根據數據緩存的位置將集中式數據緩存分為服務器端數據緩存與網關代理級數據緩存。前者主要是在服務器上設置緩存區域,后者主要是在網關和代理服務器上設置緩存區域。分布式數據緩存是通過不同的數據分割方法將數據在網絡中的多臺服務器上進行緩存。這三類數據緩存技術中,客戶端數據緩存技術具有在位置上更接近用戶、產生較少網絡傳輸和響應快速的優勢。目前客戶端緩存的實現依賴于瀏覽器廠商根據最新的 W3C 標準設計和開發的各個瀏覽器。 當前應用較為成熟和廣泛的客戶端緩存機制主要包括:基于瀏覽器實現的緩存機制和基于第三方插件實現的緩存機制。其中,前者具有代表性的有:IE 瀏覽器的user Data[8]、Safari 瀏覽器的 open Database 及 Fire Fox 瀏覽器的 Global Storage,利用這些機制完成客戶端數據緩存均不依賴于 Cookie,其操作簡單,便于開發,擁有較大的存儲容量。另外,數據不會隨著 http 請求頭一同在網絡上來回傳輸,保證一定的數據安全且減少帶寬浪費。然而,以上機制在瀏覽器中的實現各不相同,存在兼容性問題。基于第三方插件的緩存機制有 Google Gears[9][10]與 Adobe Flash Shared Object[11]。利用插件技術將 Web 數據緩存至客戶端是存在隱患的,選擇放棄安裝插件的用戶則不能正常使用 Web 應用。
...........
 
2 相關技術
 
2.1 Web 緩存技術 
緩存技術是一種在 Web 中的關鍵節點(含客戶端)上存儲頻繁訪問的數據的技術[27]。Web 緩存主要是為了臨時存儲 Web 應用中的資源如 HTML 頁面,腳本與圖片等,將資源盡可能就近保存后,用戶可以很迅速地重復訪問這些數據,這樣可以提高數據利用率和檢索效率[28]。它的基本思想是基于用戶訪問的時間局部性原理[4],將用戶訪問過的數據在網絡的關鍵節點中保存一個副本,當該數據被再次訪問時,不必請求 Web 服務器,只需讀取緩存中的副本。 緩存技術的最初提出是為了解決 CPU 計算速度與內存讀寫速度不匹配的問題。由于 CPU 運算速度遠高于內存的讀寫速度,CPU 的后續處理需要等待數據讀寫完成,這樣就導致浪費掉較多時間。CPU 對數據的訪問在一定時間內具有空間與時間上的重復性和局部性,如果在高速緩存中存放頻繁讀取的數據,當 CPU 讀取該部分數據時會首先從 Cache 中查找,查找不到時再去從內存中讀取,且需要從內存中讀取的數據只占 10%左右。Web 緩存技術的基本原理也是類似的,用戶訪問的 Web 數據具有一定的重復性。在 Web 中的恰當結點上對用戶請求的數據的中間或最終結果設計合理的緩存后,就可以縮短應用服務器請求計算時間,包括和服務器端各個系統(如數據庫系統,其他異構信息系統)的交互時間,降低用戶的等待時間,提高 Web 系統的并發量,同時也明顯降低網絡的負載[29][30]。國內學者對理想 Web 緩存系統的特性總結為:快捷性,魯棒性,透明性,可擴展性,穩定性,負載均衡等特性[31]。 
...........
 
2.2  客戶端緩存技術
基于瀏覽器自身發展的緩存機制中最突出的是 IE 瀏覽器的 user Data。user Data[31]是微軟專門為 IE 瀏覽器在客戶端開辟的一塊緩存區來存儲一些 Web 應用數據,在IE5.0 中正式引入,它是通過對 CSS 行為進行特殊擴展來實現的,這些擴展是 90 年代后期瀏覽器大戰中遺留的產物,是非標準化的。user Data 作為 IE 的一個內置組件,它的使用不依賴于用戶對瀏覽器的設置,允許瀏覽器利用一些腳本語言如 Java Script,VBScript 將 XML 格式的數據存放客戶端瀏覽器開辟的緩存空間中,并可以使得瀏覽器在不同會話間訪問。 與 Cookie 對比,user Data 在客戶端存儲容量上有了顯著的提高,user Data 將數據保存在一個 user Data 存儲區中(User Data Store),IE 中不僅對每頁數據的大小做了限制,而且對整個域的大小進行了限制,具體存儲大小視安全域而定,參見表 2.1 所示。 user Data 對象可以為不同會話中的每個對象分配一個存儲區域,并使用 save 方法與 load 方法將數據保存到相應存儲區域。user Data 在使用時需要綁定在一個 HTML標簽上并設置 behavior,但不是所有的 HTML 標簽都可以與它綁定,比如<HTML>,<HEAD>,<TITLE>與<STYLE>,應用在這些標簽上將會在調用 save 方法與 load 方法時發生錯誤。在沒有手動刪除和過期時間到期前,user Data 會在用戶機器中一直保存,出于數據安全性的考慮,一個 user Data 存儲區只可以保存同一目錄下使用同一種協議的數據。此外,user Data 存儲數據時并沒有對其做加密處理,重要、敏感數據不宜保存其中。 
...........
 
3 Web 應用客戶端緩存方案研究 ...... 17 
3.1 HTML5 客戶端存儲機制研究 ...... 17 
3.1.1 Web Storage .......... 17 
3.1.2 Indexed Database .......... 18 
3.1.3 Application Cache ........ 21 
3.1.4  存儲機制對比與應用場景分析 ......... 22 
3.2 Web 應用客戶端數據緩存準則 .... 23 
3.3  基于 HTML5 的 Web 應用客戶端緩存方案 ....... 24
3.4   本章小結 ..... 33 
4 面向客戶端緩存的 Web 應用框架 ......... 34 
4.1 Web 應用結構框架設計 ........ 34 
4.2  詳細設計與實現 ........... 36 
4.3  本章小結 ....... 45 
5 應用與效果評估 ...... 46 
5.1  案例應用簡介與實現 ........... 46 
5.2  客戶端緩存方案核心函數 ........... 47 
5.3  測試環境 ....... 48 
5.4  測試內容 ....... 48 
5.4.1  頁面模板 ..... 48 
5.4.2  功能測試 ..... 48 
5.5  效果評估 ....... 51 
5.6  本章小結 ....... 52 
 
5 應用與效果評估 
 
主要對第 4 章中基于客戶端緩存的 Web 應用新方案進行具體的案例設計和效果評估。主要介紹案例應用和實現過程,之后進行測試與效果評估,通過具體的應用實施和測試評估發現目前存在的優點與不足,并提出未來的解決方案。 
 
5.1  案例應用簡介與實現 
本文中將客戶端緩存新方案應用于一個簡單的網上書城應用,主要來模擬和實現圖書檢索功能、查看圖書詳情和圖書相關評論的功能,主要用于檢驗本緩存方案的有效性并進行測試。本案例的主要設計目標有:本小節主要結合案例介紹客戶端緩存新方案的應用和其關鍵方法。 (1) open Next Page(url,qstr):完成頁面跳轉,將參數保存本地,方便下一個頁面模板訪問,并根據參數呈現不同的結果。參數 url 傳入下一個頁面模板的地址,參數 qstr傳入上一個頁面的查詢參數,這里參數的保存采用的是 local Storage 存儲方式,參數url 的值作為鍵,參數 qstr 的值為鍵對應的值。 (2) query(serv Name,mapping File):查詢處理入口。負責讀取在客戶端緩存中讀取該模板的查詢參數,并完成查詢處理。第一個參數 serv Name 為服務器端負責該處理的 servlet 的名稱。第二個參數 mapping File 是該模板的映射信息文件地址。 (3) load XML(xml File):加載 xml 文件,將 xml 文件轉化為 DOM 結構。讀入映射信息文件,方便后續節點和屬性值的讀取。參數 xml File 指定映射信息文件路徑。 (4) clear Table(xml Dom):清空動態數據內容和恢復表格原始結構。頁面模板中只給出了表頭信息,表格的行數和內容是由每次的查詢參數和檢索結果決定的,因此在進行下一次查詢時需要將上次查詢對頁面進行的變動做恢復。具體對頁面的哪些表格做恢復需由傳入的映射文件 DOM 的相關節點指定。 
...........
 
總結 
 
互聯網的快速普及和 Web 技術的不斷革新催生了無數 Web 應用,滲透進人們生活、工作、學習與娛樂等方方面面,極大降低了人們獲取信息和服務的成本。Web應用已不再是功能單一的內容提供者,而是逐漸演變為功能強大,業務邏輯復雜,計算龐大的應用服務系統。在體驗至上理念盛行的當下,開發人員在設計和開發 Web應用時需要思考如何提升客戶端性能。時間與空間局部性原理告訴我們用戶在使用Web 應用過程中會頻繁訪問某些數據,這些數據如果每次都要通過發送請求至服務器,由服務器給出響應結果的話,會造成一定的帶寬和服務器計算資源的浪費,在訪問高峰時段,還會出現響應緩慢和用戶等待時間較長的問題。客戶端緩存是解決該類問題的有效辦法,但已有的瀏覽器緩存和第三方插件緩存都存在一定的缺陷。一方面,PC的更新換代帶來了客戶端硬件性能的提升如:更大的硬盤空間和更快的處理器速度。另一方面,最新發展了HTML5標準,各個瀏覽器開始對該標準提供不同程度的支持。因此在這一發展背景下本文提出了一種客戶端緩存新方案,主要工作有: 
(1)  研究了客戶端緩存機制的歷史與發展現狀,對比和總結了不同緩存機制的優缺點和相適應的應用場景。 
(2)  提出了客戶端數據緩存的通用準則,為 Web 應用開發者提供客戶端緩存數據的一些參考。 
(3)  提出了基于 HTML5 標準的客戶端緩存新方案,設計了客戶端緩存層的處理邏輯和方案實現的核心 API。 
(4)  對集成頁面模式做適當補充完善,實現了頁面靜態模板和頁面動態數據分離,利用通用集成器將兩者集成。 
(5)  最后,設計了案例應用,對本文的客戶端緩存新方案進行了測試與驗證。  
.........
參考文獻(略)


上一篇:上一篇:國家審計在宏觀經濟管理中 的地位和作用研究

下一篇:下一篇:沒有了

在線咨詢
我要發表
發布轉讓需求
?

合作伙伴: