<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
localStorage
的容量大家都知道是5M
,但是卻很少人知道怎麼去驗證,而且某些場景需要計算localStorage
的剩餘容量時,就需要我們掌握計算容量的技能了~~
我們以10KB
一個單位,也就是10240B
,1024B
就是10240
個位元組的大小,我們不斷往localStorage
中累加存入10KB
,等到超出最大儲存時,會報錯,那個時候統計出所有累積的大小,就是總儲存量了!
注意:計算前需要先清空LocalStorage
let str = '0123456789' let temp = '' // 先做一個 10KB 的字串 while (str.length !== 10240) { str = str + '0123456789' } // 先清空 localStorage.clear() const computedTotal = () => { return new Promise((resolve) => { // 不斷往 LocalStorage 中累積儲存 10KB const timer = setInterval(() => { try { localStorage.setItem('temp', temp) } catch { // 報錯說明超出最大儲存 resolve(temp.length / 1024 - 10) clearInterval(timer) // 統計完記得清空 localStorage.clear() } temp += str }, 0) }) } (async () => { const total = await computedTotal() console.log(`最大容量${total}KB`) })()
最後得出的最大儲存量為5120KB ≈ 5M
計算已使用容量,我們只需要遍歷localStorage
身上的儲存屬性,並計算每一個的length
,累加起來就是已使用的容量了~~~
const computedUse = () => { let cache = 0 for(let key in localStorage) { if (localStorage.hasOwnProperty(key)) { cache += localStorage.getItem(key).length } } return (cache / 1024).toFixed(2) } (async () => { const total = await computedTotal() let o = '0123456789' for(let i = 0 ; i < 1000; i++) { o += '0123456789' } localStorage.setItem('o', o) const useCache = computedUse() console.log(`已用${useCache}KB`) })()
可以檢視已用容量
我們已經計算出總容量和已使用容量,那麼剩餘可用容量 = 總容量 - 已使用容量
const computedsurplus = (total, use) => { return total - use } (async () => { const total = await computedTotal() let o = '0123456789' for(let i = 0 ; i < 1000; i++) { o += '0123456789' } localStorage.setItem('o', o) const useCache = computedUse() console.log(`剩餘可用容量${computedsurplus(total, useCache)}KB`) })()
可以得出剩餘可用容量
以上就是JS程式碼計算LocalStorage容量範例詳解的詳細內容,更多關於JS計算LocalStorage容量的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45