iOS 5.1的Web存儲(chǔ)方式改變會(huì)影響到Web App嗎?
比如,這一款A(yù)pp看起來正受著影響:

其他的開發(fā)者表示:
“我收集的統(tǒng)計(jì)數(shù)據(jù)表明,用戶經(jīng)常因?yàn)锳pp每次打開之后,之前的設(shè)置常常被刪除,而拋棄一款A(yù)pp。這其實(shí)是一個(gè)相當(dāng)致命的錯(cuò)誤,應(yīng)該被馬上糾正。而且不要忘了,開發(fā)者糾正以后,到Apple允許新版本上架,還有段時(shí)間要等。”
準(zhǔn)確地說,WebKit被用于存儲(chǔ)本地?cái)?shù)據(jù)文件到Library/Webkit中。Library/Webkit這個(gè)存儲(chǔ)目錄在過去被操作系統(tǒng)看做是***的,并且備份于iCloud中。而iOS5.1中,數(shù)據(jù)被存儲(chǔ)于Library/Caches中,這意味著這都被當(dāng)成了臨時(shí)數(shù)據(jù),并有可能被刪除。W3C的候選意見,對(duì)localStorage給出的評(píng)價(jià)是(原文點(diǎn)擊這里):
“用戶代理應(yīng)該將本地存儲(chǔ)中的數(shù)據(jù)分散開,這是基于安全性的考慮,或者在用戶需要他們這么做時(shí)他們應(yīng)該如此。”
一個(gè)嵌入式瀏覽器和傳統(tǒng)Web瀏覽器并不完全一樣。如果你在Webkit中用SQLite,那這將不包含在W3CHTML***PI中,因?yàn)檫@些API已不再提供WebSQL。
這個(gè)問題的復(fù)雜性在于,還會(huì)存在一個(gè)Bug(詳情點(diǎn)擊這里),它導(dǎo)致升級(jí)App至新版本之后數(shù)據(jù)的丟失。還有其他問題存在于目前的WebApp,以及應(yīng)用了嵌入式UIWebView的App中。
PhoneGap在這個(gè)問題上是有一定彈性的。因?yàn)樗梢哉{(diào)用本地API,這將在可能出現(xiàn)問題時(shí)繼續(xù)工作。不過不好的情況是,代碼會(huì)因此更針對(duì)特定平臺(tái),而破壞其跨平臺(tái)性。
從Apple開發(fā)者論壇上在iOS5.1的beta版發(fā)布期間的討論,可以看出Apple已經(jīng)意識(shí)到這個(gè)問題,但正式版發(fā)布時(shí)仍沒得到解決。這給我們的感覺是,Apple似乎惱怒于眾多的App(無論Web還是本地)運(yùn)用Web存儲(chǔ)來加速,而不是僅用來存儲(chǔ)用戶創(chuàng)建的內(nèi)容。Apple覺得,這是在給iOS設(shè)備上本來就捉襟見肘的存儲(chǔ)空間施加更大壓力。
想擴(kuò)大一部iPad或者iPhone的存儲(chǔ)空間,除了花更多的錢再買一部,我們都知道別無他法。
這的確是個(gè)問題。不過你不能否認(rèn)的是,Apple認(rèn)為PhoneGap一類的開發(fā)工具,或者體驗(yàn)接近本地App的WebApp,這對(duì)于Apple而言某種程度繞過了它的商業(yè)開發(fā)體系,而它絕對(duì)不鼓勵(lì)這么做。Apple更喜歡的還是完全采用iOSSDK開發(fā)的App。
Apple從真正意義上的本地App受益,這導(dǎo)致了Apple平臺(tái)常顯出一定程度的排他性。而且App只能從AppStore上獲得,同時(shí)Apple從中抽取一定比例費(fèi)用。
官方的iOS數(shù)據(jù)存儲(chǔ)指南可以點(diǎn)擊這里獲得。
文章發(fā)表于2012年4月1日。
原文作者TimAnderson,著名IT自由記者。
原文鏈接:
http://www.itwriting.com/blog/5656-apple-breaks-web-storage-in-ios-5-1-does-not-care-about-web-apps.html?utm_source=html5weekly&utm_medium=email















 
 
 






 
 
 
 