Indexed DB:未來Web應用的潛力股?
【51CTO編者按】近日,一篇名為《Indexed DB:未來一切Web應用的基石》的文章出現(xiàn)在各大IT網(wǎng)站的重要位置。“Web應用的基石”是什么?51CTO認為,Indexed DB能否成為未來Web應用的基石還有待時間的考證,就像文中所說,畢竟它還沒有成型,未來會怎樣?有誰會知道!下面讓我們一起來看看Indexed DB到底是什么。
微軟的背書
Indexed DB發(fā)展有微軟的功勞。多年來,微軟一直和各種有關HTML的討論保持距離,現(xiàn)在,他們開始積極參與其中,比如,微軟架構師 Pablo Castro 在對 Indexed DB 的反饋意見中,不僅對Indexed DB表示贊賞,而且表示,微軟正在招聘人員從事Indexed DB相關的工作。另外,微軟在其IE博客中,公開對Indexed DB進行背書,微軟說,“和Mozilla一起,我們對本地存儲技術Indexed DB感到振奮,我們認為這是Web的一個重要方案”。
微軟的表態(tài)非常重要,首先,微軟在瀏覽器市場舉足輕重,因此,盡管開發(fā)者們?yōu)槲④浿皩藴实膽B(tài)度表示嘲諷,然而,當微軟和他的競爭對手 Mozilla 站在一起為某種技術背書的時候,這對開發(fā)者而言意義非同尋常。微軟的背書意味著,Indexed DB 將成為真實的工具,而不僅僅是學者們的一個概念。另一方面,微軟正在積極開發(fā)他們的下一代瀏覽器IE9,盡管有關IE9的新功能還很含糊,但至少說明這個公司開始重新重視他們的市場。
本地還是網(wǎng)絡?
這聽上去有些倒退,然而,在瀏覽器本地存儲數(shù)據(jù)對Web應用來說非常重要,雖然云計算的本質(zhì)是將一切應用運行到網(wǎng)絡上,然而,我們的網(wǎng)絡并不是無處不在,也沒有足夠快。本地存儲讓開發(fā)者將一些數(shù)據(jù)保存在本地計算機以便快速處理,這意味著,Gmail,Google Docs一類的應用可以離線使用,也讓數(shù)據(jù)可以緩存在本地以便將來使用,這使得云計算更快更可靠。
Opera 的首席標準官 Charles McCathieNevile 說,將一段文字存儲在本地數(shù)據(jù)庫,似乎有些用牛刀殺雞的意味,然而對Web程序中的大規(guī)模數(shù)據(jù),則完全有必要建立一個真正的數(shù)據(jù)庫來保存。
一直以來,瀏覽器通過Cookie在本地保存小段文本數(shù)據(jù),然而,瀏覽器廠商一直在尋求強大的方法,一個方法就是 Firefox 和 IE8 都支持的 LocalStorage,雖然已經(jīng)被 W3C 接納為標準,瀏覽器廠商們發(fā)現(xiàn)它的局限性越來越大,比如,它不支持多線程。Blizzard 說,因為多個瀏覽標簽可能訪問同一份數(shù)據(jù),你必須保證一個標簽的行為不被另一個標簽看到,對那些像Chrome一樣擁有多個進程的瀏覽器來說,這尤其難處理。
Web SQL的興衰
另一個本地存儲方案,來自Apple,稱為Web SQL,有時稱Web DB,它使用SQL查詢語言查詢數(shù)據(jù)。Safari 支持Web SQL,還有 Chrome 4, Opera 也在尋求對該技術的支持。然而,Web SQL 遇到了問題,因為每家數(shù)據(jù)庫廠商都有自己的 SQL,Web SQL使用的 SQLite 并非標準。Google 認為,目前的 SQL 語法各式各樣,尚待統(tǒng)一。Apple 程序員 Maciej Stachowiak 指出,這樣下去,必將產(chǎn)生多個Web SQL版本。W3C HTML 5起草者,Google 員工Ian Hickson說,我不會使用那些沒有被大量支持的標準,同時,在W3C有關Web SQL 的提案中有這么一句話,“該提案已陷入僵局”,之前51cto也曾報道過關于HTML 5 Web SQL Database的相關內(nèi)容。
Indexed DB的興起
Indexed DB在瀏覽器層面使用底層的接口,微軟和Mozilla 認可這一策略,開發(fā)者可以自己實現(xiàn)基于這些底層技術的接口,就像人們使用JavaScript實現(xiàn)了各種各樣的框架,如 jQuery, Dojo, 及 YUI 。現(xiàn)在的Web,開發(fā)者們并不經(jīng)常使用瀏覽器自己的API,相反,他們更愿意使用 jQuery,Dojo 一類跨瀏覽器框架,與其推出一些復雜的,不兼容的API,還不如推出簡單的底層的東西,讓開發(fā)者們自己實現(xiàn)各種應用。
目前,關于Indexed DB,Opera還沒有明確表態(tài),但McCathieNevile 在W3C會議上對之表示贊賞,而蘋果則拒絕評論。不過,假如IE,Mozilla,Chrome都支持Indexed DB,并使之成為W3C標準,Apple可能將毫無選擇,因為開發(fā)者會使用。Google在他們的Chrome開發(fā)文檔中提到了一些實現(xiàn)方法的細節(jié),并將Inexed DB的相關代碼加入Webkit 代碼庫,這意味著,Apple很快也會進行一些測試。
Indexed DB 還是不確定的東西,LocalStorage 的經(jīng)驗告訴我們,成為標準也不一定意味著什么。但Indexed DB有強大的背書者,它至少可以成為讓開發(fā)者能夠開始體驗的東西,假以時日,它有可能最后成為一切Web應用的基石。
【編輯推薦】