基于腳本的客戶端軟件結構化存儲技術研究
摘要:為了更方便地開發(fā)webwidget和wehapp等應用程序,文中提出一種基于XML (HTML)描述并輔之以JavaSeript之類的腳本,構造出可以離線應用的程序。這是WPF、wehOS等技術的基礎思想,考慮到安全性,這類軟件不可能允許應用直接操作本地文件系統(tǒng),都是通過一層抽象,以滿足一般性的應用開發(fā)為目標。文中就是通過分析HTML5標準,從而對基于描述的客戶端結構化存儲提供統(tǒng)一的解決方案。HTML5關于數(shù)據(jù)庫的接口標準目前還只是在部分瀏覽器中得以實現(xiàn),但是隨著技術發(fā)展,會有更多的瀏覽器加入這種標準,在將來基于瀏覽器的web應用開發(fā)都可以采取HTML5標準的數(shù)據(jù)庫接口。
本文引用地址:http://butianyuan.cn/article/148256.htm關鍵詞:瀏覽器;HTML5;結構化存儲;離線應用;數(shù)據(jù)庫
0 引 言
SaaS是Software-as-a-service(軟件即服務)的簡稱,是隨著互聯(lián)網技術的發(fā)展和應用軟件的成熟,在21世紀開始興起的一種完全創(chuàng)新的軟件應用模式。
它與“on-demand software”(按需軟件),the applicationservice provider(ASP,應用服務提供商),hosted software(托管軟件)具有相似的含義。它是一種通過lntenet提供軟件的模式,廠商將應用軟件服務,按定購的服務多少和時間長短向廠商支付費用,并通過互聯(lián)網獲得廠商提供的服務。
用戶不用再購買軟件,而改用向提供商租用基于web的軟件,來管理企業(yè)經營活動,且無需對軟件進行維護,服務提供商會全權管理和維護軟件,軟件廠商在向客戶提供互聯(lián)網應用的同時,也提供軟件的離線操作和本地數(shù)據(jù)存儲,讓用戶隨時隨地都可以使用其定購的軟件和服務。
對于許多小型企業(yè)來說,SaaS是采用先進技術的最好途徑,它消除了企業(yè)購買、構建和維護基礎設施和應用程序的需要。
在這種模式下,客戶不再像傳統(tǒng)模式那樣花費大量投資用于硬件、軟件、人力,而只需要支出一定的租賃服務費用,通過互聯(lián)網便可以享受到相應的硬件、軟件和維護服務,享有軟件使用權和不斷升級,這是網絡應用最具效益的營運模式。
1 客戶端存儲
什么是客戶端存儲?
客戶端存儲是相對服務器端存儲而言的,主要是指在web應用當中原本存儲于服務器中的數(shù)據(jù)現(xiàn)在存儲在本地(browser)了,它帶來的直接好處就是:支持該技術的web應用不用連接Intemet就可以很好地運行。
為什么需要客戶端存儲?
它可以緩解高峰期服務器端查詢的壓力,也可以省下不少帶寬,查詢速度快,它也使離線應用開發(fā)成為可能。但是同時,它也存在著一些問題,比如數(shù)據(jù)的保密性如何實現(xiàn),如何防止數(shù)據(jù)被攻擊。
1.1 2種客戶端存儲技術的實現(xiàn)方式
(1)以瀏覽器插件的形式存在(如google gears,mi—crosoft silverlight)。
(2)在瀏覽器開發(fā)的過程中就加入了該特性(刪I5的解決方案)。
1.2 當前瀏覽器的主要數(shù)據(jù)存儲方式
除了通用的rookies外,還有:
1)在intemet explorer下,可以使用UserData來存儲;
2)在firefox下,可以通過sessionStorage來存儲;
3)safari可以通過Database Storage來存儲;
4)opera可以通過widgets來實現(xiàn)。不支持HTML5結構化存儲,有一套自己的實現(xiàn)方法。
可見,目前實現(xiàn)本地數(shù)據(jù)存儲的標準并未統(tǒng)一。
以下對這些存儲方式做簡單介紹,之后重點分析HTML5的實現(xiàn)標準。
一直以來瀏覽器依靠插件技術實現(xiàn)客戶端存儲,因為HTTP cookies在結構化方面有些限制(只有4k),所以這些年其他技術有所發(fā)展,它們是:
(1)userData:僅在IE5.5及以后的版本中有使用。
userData的存儲機制:將要保存的數(shù)據(jù)以“健值對(健作為屬性,值為屬性的值)”的形式保存在XML文檔中。userData行為提供了一個比Cookie更具有動態(tài)性和更大容量的數(shù)據(jù)結構。每頁的UserData存儲區(qū)數(shù)據(jù)大小可以達到64 kb,每個域名可以達到640 kb-2j。
userData行為通過sessions為每個對象分配User—Data存儲區(qū)。使用save和load方法將UserData存儲區(qū)數(shù)據(jù)保存在緩存(cache)中。一旦UserData存儲區(qū)保存以后,即使IE瀏覽器關閉或者刷新了,下一次進入該頁面,數(shù)據(jù)也能夠重新載入而不會丟失,除非你人為刪除或者用腳本設置了該數(shù)據(jù)的失效期。
userData使用前必須在行內或者文檔的HEA1)部分宣告如下樣式:
STYLE>.userData{behavior:url(#default#userdata);/ST YLE >
或者使用腳本綁定:
object.style.behavior: “ (’#default#userData’)”
object.ad~ vior(“#default userData”)windowXP系統(tǒng)下,數(shù)據(jù)文件保存在:
C:\DocumentandSettings\(USelT1.allle)\ApphcationData\Microsoft\IE\UserData\,保存格式為xml。
(2)本地共享對象(Local Shared Object):在有Adobe Flash Player 6及更新版本作為插件的瀏覽器中使用。主要用在ActionScript中。
(3)Google Ge.frs:.一個基于Firefox和IE的插件,由Google公司開發(fā)維護,主要用于離線應用程序,如離線搜索。要使用它,必須先安裝相應插件。Gears還具有一些特性:
a.一個本地服務器,用以在本地緩存和提供應用程序資源(HTⅦ ,JavaScript,圖片等)。無需連接服務器即可訪問這些資源。
b.數(shù)據(jù)庫,在瀏覽器內部保存和訪問數(shù)據(jù)。
c.工作人員線程池,通過在后臺執(zhí)行費時的操作使應用程序響應更加迅速。
d.HttpRequest應用程序接El,實現(xiàn)了W3C XMLHttpRequest規(guī)范的一個子集。
e.一個Geolocation應用程序接口,使web應用程序能夠獲得用戶的地理位置E3』。
2 HTML 5結構化客戶端存儲
為了適合現(xiàn)代及未來的web技術,解決這種混亂局面,創(chuàng)造一個廣泛的可接受的標準,互聯(lián)網超文本應用技術工作組(WHATWG)及W3C HTML工作組開發(fā)了一種良好的客戶端結構化存儲解決方案。它是、v0rld Wide Web核心語言HTML5未來主要修訂版的組成部分。HTML5第一版公共工作草案于2008.1.22發(fā)布。但是這項工作2004年就已經開始,當時取名為web應用1.0,然后在2007.5得到更正,從那以后每天都有更新。HTMI~有很多變動而且它大概要2012年才能被W3C Candidate Reeommendation state所接受,但是現(xiàn)在已經有不少瀏覽器接受了它的一些標準。
評論