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