摘要:是手機(jī)端關(guān)系型數(shù)據(jù)庫(kù)的最佳方案,各種手機(jī)都支持。但是目前手機(jī)端重量數(shù)據(jù)存儲(chǔ)的唯一可商用方案。是里最新的數(shù)據(jù)存儲(chǔ)規(guī)范,但不是基于,而是基于對(duì)象。與的標(biāo)準(zhǔn)相比,的擴(kuò)展主要是為了跨域。有網(wǎng)友封裝了一個(gè)框架,針對(duì)數(shù)據(jù),在超過(guò)時(shí)自動(dòng)切換到,參考。
總結(jié)HTML5+的離線本地存儲(chǔ)的多種方案:
[ √ ] HTML5標(biāo)準(zhǔn)方案:cookie、localstorage、sessionstorage、websql、indexedDB
[ √ ] HTML5Plus擴(kuò)展方案:plus.navigator.setCookie、plus.storage、plus.io
分析:cookie
體量最小,可以設(shè)置過(guò)期時(shí)間。不能跨域. 所有設(shè)備都支持(IOS不支持 ASCII碼,不支持中文)
localstorage
適合key、value鍵值對(duì)的存儲(chǔ),數(shù)據(jù)量一般不超過(guò)5M。是常用的輕量數(shù)據(jù)存儲(chǔ)方案。不能跨域。
sessionstorage
也是鍵值對(duì),特點(diǎn)是關(guān)閉App就消失了,也不能跨webview,一般不用于持久化數(shù)據(jù)保存。
websql **
是手機(jī)端關(guān)系型數(shù)據(jù)庫(kù)的最佳方案,各種手機(jī)都支持。只是該標(biāo)準(zhǔn)不再更新。但是目前手機(jī)端重量數(shù)據(jù)存儲(chǔ)的唯一可商用方案。注意iOS8、9的wkWebview不支持websql。
indexedDB
是HTML5里最新的數(shù)據(jù)存儲(chǔ)規(guī)范,但不是基于SQL,而是基于對(duì)象。indexedDB性能更高,全是異步處理,學(xué)習(xí)難度偏大。最重要的是目前手機(jī)端支持度不行。Android4.4以上和iOS8以上才支持indexedDB。
plus.navigator.setCookie
與HTML5的標(biāo)準(zhǔn)cookie相比,plus的擴(kuò)展主要是為了跨域。所謂跨越,就是本地HTML頁(yè)面和服務(wù)器HTML頁(yè)面共享cookie數(shù)據(jù),或者說(shuō)本地頁(yè)面的js可以操作服務(wù)器頁(yè)面產(chǎn)生的cookie。如果沒(méi)有跨越需求,不需要使用plus擴(kuò)展。注意iOS8以后的wkWebview不支持setcookie。
plus.storage
plus.storage也是鍵值對(duì)數(shù)據(jù)存儲(chǔ)。它是把OS給原生App使用的鍵值對(duì)存儲(chǔ)數(shù)據(jù)庫(kù)封裝一層給JS使用。plus.storage沒(méi)有理論上的大小限制。plus.storage相比于localstorage 還有一個(gè)特點(diǎn)是可跨域。當(dāng)一個(gè)存儲(chǔ)數(shù)據(jù),需要被本地和來(lái)自服務(wù)器的頁(yè)面同時(shí)讀寫(xiě)時(shí),就涉及跨域問(wèn)題。此時(shí)HTML5的localstorage不能滿(mǎn)足需求,只能使用plus.storage。plus.storage操作要比localstorage慢幾十毫秒,尤其是在循環(huán)里調(diào)用plus api會(huì)放大這種慢。如果不是因?yàn)榇笮∠拗苹蚩缭?,盡量使用localstorage。(有網(wǎng)友封裝了一個(gè)框架,針對(duì)key-value數(shù)據(jù),在localstorage超過(guò)5m時(shí)自動(dòng)切換到plus.storage,參考http://ask.dcloud.net.cn/arti...。雖然這么做聽(tīng)起來(lái)有點(diǎn)復(fù)雜,但我們對(duì)這種追求性能極致的開(kāi)發(fā)者非常贊賞。)
plus.io
plus.io是文件讀寫(xiě),雖然也可以通過(guò)讀寫(xiě)txt等文件存儲(chǔ)數(shù)據(jù),但并不如專(zhuān)業(yè)的storage和websql方便。plus.io更多的是用于圖片等多媒體文件的本地保存。
比如圖文列表的離線使用,一般有2種做法:
圖片下載不通過(guò)img的src,而是plus.dowload下載的,先下載圖片,存好路徑后,然后img的src動(dòng)態(tài)指定文件路徑
圖片使用img的src下載,然后用canvas把img存成圖片文件。下次不聯(lián)網(wǎng),img的scr直接指向本地文件
實(shí)際開(kāi)發(fā)中常常使用如下方案:
websql + base64 + html5本地存儲(chǔ)保存圖片和文件 + plus.dowload緩存圖片
原文地址 : https://segmentfault.com/a/11...
如果喜歡, 應(yīng)該: 點(diǎn)贊 $underline{或者}$ ...
如果有 新的想法 可以直接在下方評(píng)論或者 聯(lián)系我 。
---------------------------------------【原創(chuàng)】 ---------------------------------------
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/54409.html
摘要:是手機(jī)端關(guān)系型數(shù)據(jù)庫(kù)的最佳方案,各種手機(jī)都支持。但是目前手機(jī)端重量數(shù)據(jù)存儲(chǔ)的唯一可商用方案。是里最新的數(shù)據(jù)存儲(chǔ)規(guī)范,但不是基于,而是基于對(duì)象。與的標(biāo)準(zhǔn)相比,的擴(kuò)展主要是為了跨域。有網(wǎng)友封裝了一個(gè)框架,針對(duì)數(shù)據(jù),在超過(guò)時(shí)自動(dòng)切換到,參考。 總結(jié)HTML5+的離線本地存儲(chǔ)的多種方案: [ √ ] HTML5標(biāo)準(zhǔn)方案:cookie、localstorage、sessionstorage、w...
摘要:之銀彈技法下文這些淫巧在之前自認(rèn)為是居家必備,裝逼撩妹的必備之物,博主一直敝帚自珍,不愿拿出來(lái)分享,現(xiàn)如今,極盡能事,我知道再不拿出來(lái)就在沒(méi)有價(jià)值了來(lái)由博主入行前端寫(xiě)時(shí)候,因?yàn)樾枰嫒莸桶姹荆瑫r(shí)常需要在繁雜冗長(zhǎng)的操作夾雜的代碼中,盡可能巧妙 JavaScript 之銀彈の技法 下文這些淫巧在之前自認(rèn)為是居家必備,裝逼撩妹的必備之物,博主一直敝帚自珍,不愿拿出來(lái)分享,現(xiàn)如今,ES6+極盡...
摘要:為什么會(huì)產(chǎn)生閉包究其根本,是因?yàn)榇淼暮瘮?shù)包含的作用域。而在作用域鏈中,外部函數(shù)的活動(dòng)對(duì)象始終處于第二位,外部函數(shù)的外部函數(shù)的活動(dòng)對(duì)象處于第三位直到作為作用域鏈終點(diǎn)的全局執(zhí)行環(huán)境。 前言 此文的內(nèi)容主要是來(lái)自看書(shū)的總結(jié)+小小的實(shí)踐哦~會(huì)不斷更新總結(jié)。 什么是閉包 書(shū)上是這樣定義閉包的: 有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中變量的函數(shù)。 舉一個(gè)例子: function test(){ va...
摘要:博文內(nèi)容屬性屬性和屬性標(biāo)簽博文粗略解讀與做對(duì)比內(nèi)容屬性屬性屬性屬性中的對(duì)應(yīng)原生中的中的對(duì)應(yīng)原生中對(duì)象在中在更早版本的中,內(nèi)容屬性在對(duì)象上表示為文檔對(duì)象模型。即中屬性屬性解讀內(nèi)容屬性在是源中指定的屬性,例如,。 [博文]內(nèi)容屬性(HTML屬性)和 DOM 屬性 標(biāo)簽: 博文 JavaScript 粗略解讀(與jQuery做對(duì)比) 內(nèi)容屬性(HTML屬性) : attribute D...
閱讀 3960·2021-09-22 10:02
閱讀 3377·2019-08-30 15:52
閱讀 3071·2019-08-30 12:51
閱讀 769·2019-08-30 11:08
閱讀 2071·2019-08-29 15:18
閱讀 3115·2019-08-29 12:13
閱讀 3605·2019-08-29 11:29
閱讀 1881·2019-08-29 11:13