Indexed DB:未來一切 Web 應用的基石

未來的 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 應用的基石。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章