Indexed DB:未來一切 Web 應用的基石
作者: its
|
發布: 2010/3/14 (下午 01:25)
|
閱讀: 25791
|
評論: 0
|
靜態地址
|
內容源碼
未來的 Web 應用是什么樣子,雖然還不清晰,但瀏覽器廠商們認為,未來 Web 應用的基石是一種叫做 Indexed DB 的本地存儲技術,這個由 Oracle 發起,最初叫 WebSimpleDB 的本地存儲技術,目前只是一個原型,但已經獲得微軟,Mozilla,Google 等重要廠商的認可。他們還尋求將 Indexed DB 提交 W3C 成為標準。
微軟的背書
Indexed DB 發展有微軟的功勞。多年來,微軟一直和各種有關 HTML 的討論保持距離,現在,他們開始積極參與其中,比如,微軟架構師 Pablo Castro 在對 Indexed DB 的反饋意見中,不僅對 Indexed DB 表示贊賞,而且表示,微軟正在招聘人員從事 Indexed DB 相關的工作。另外,微軟在其 IE 博客中,公開對 Indexed DB 進行背書,微軟說,“和 Mozilla 一起,我們對本地存儲技術 Indexed DB 感到振奮,我們認為這是 Web 的一個重要方案”。
微軟的表態非常重要,首先,微軟在瀏覽器市場舉足輕重,因此,盡管開發者們為微軟之前對標準的態度表示嘲諷,然而,當微軟和他的競爭對手 Mozilla 站在一起為某種技術背書的時候,這對開發者而言意義非同尋常。微軟的背書意味著,Indexed DB 將成為真實的工具,而不僅僅是學者們的一個概念。另一方面,微軟正在積極開發他們的下一代瀏覽器 IE9,盡管有關 IE9 的新功能還很含糊,但至少說明這個公司開始重新重視他們的市場。
本地還是網絡?
這聽上去有些倒退,然而,在瀏覽器本地存儲數據對 Web 應用來說非常重要,雖然云計算的本質是將一切應用運行到網絡上,然而,我們的網絡并不是無處不在,也沒有足夠快。本地存儲讓開發者將一些數據保存在本地計算機以便快速處理,這意味著,Gmail, Google Docs 一類的應用可以離線使用,也讓數據可以緩存在本地以便將來使用,這使得云計算更快更可靠。
Opera 的首席標準官 Charles McCathieNevile 說,將一段文字存儲在本地數據庫,似乎有些用牛刀殺雞的意味,然而對 Web 程序中的大規模數據,則完全有必要建立一個真正的數據庫來保存。
一直以來,瀏覽器通過 Cookie 在本地保存小段文本數據,然而,瀏覽器廠商一直在尋求強大的方法,一個方法就是 Firefox 和 IE8 都支持的 LocalStorage,雖然已經被 W3C 接納為標準,瀏覽器廠商們發現它的局限性越來越大,比如,它不支持多線程。Blizzard 說,因為多個瀏覽標簽可能訪問同一份數據,你必須保證一個標簽的行為不被另一個標簽看到,對那些像 Chrome 一樣擁有多個進程的瀏覽器來說,這尤其難處理。
Web SQL 的興衰
另一個本地存儲方案,來自 Apple,稱為 Web SQL ,有時稱 Web DB,它使用 SQL 查詢語言查詢數據。Safari 支持 Web SQL,還有 Chrome 4, Opera 也在尋求對該技術的支持。然而,Web SQL 遇到了問題,因為每家數據庫廠商都有自己的 SQL,Web SQL 使用的 SQLite 并非標準。Google 認為,目前的 SQL 語法各式各樣,尚待統一。Apple 程序員 Maciej Stachowiak 指出,這樣下去,必將產生多個 Web SQL 版本。
W3C HTML5 起草者,Google 員工 Ian Hickson 說,我不會使用那些沒有被大量支持的標準,同時,在 W3C 有關 Web SQL 的提案中有這么一句話,“該提案已陷入僵局”。
Indexed DB 的興起
Indexed DB 在瀏覽器層面使用底層的接口,微軟和 Mozilla 認可這一策略,開發者可以自己實現基于這些底層技術的接口,就像人們使用 JavaScript 實現了各種各樣的框架,如 jQuery, Dojo, 及 YUI 。現在的 Web ,開發者們并不經常使用瀏覽器自己的 API,相反,他們更愿意使用 jQuery,Dojo 一類跨瀏覽器框架,與其推出一些復雜的,不兼容的 API,還不如推出簡單的底層的東西,讓開發者們自己實現各種應用。
目前,關于 Indexed DB,Opera 還沒有明確表態,但 McCathieNevile 在 W3C 會議上對之表示贊賞,而蘋果則拒絕評論。不過,假如 IE,Mozilla, Chrome 都支持 Indexed DB,并使之成為 W3C 標準,Apple 可能將毫無選擇,因為開發者會使用。
Google 在他們的 Chrome 開發文檔中提到了一些實現方法的細節,并將 Inexed DB 的相關代碼加入 Webkit 代碼庫,這意味著,Apple 很快也會進行一些測試。
Indexed DB 還是不確定的東西,LocalStorage 的經驗告訴我們,成為標準也不一定意味著什么。但 Indexed DB 有強大的背書者,它至少可以成為讓開發者能夠開始體驗的東西,假以時日,它有可能最后成為一切 Web 應用的基石。
本文國際來源:http://news.cnet.com/8301-30685_3-20000376-264.html?tag=mncol;title
中文編譯來源:銳商企業CMS 網站內容管理系統 官方網站
|