成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官居然要我用JS代碼計算LocalStorage容量!

開發 前端
我們以10KB一個單位,也就是10240B,1024B就是10240個字節的大小,我們不斷往localStorage中累加存入10KB,等到超出最大存儲時,會報錯,那個時候統計出所有累積的大小,就是總存儲量了!

LocalStorage 容量

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`)
})()

可以得出剩余可用容量

責任編輯:武曉燕 來源: 前端之神
相關推薦

2024-05-09 10:33:14

JS計算容量

2022-11-04 08:47:52

底層算法數據

2021-12-13 09:02:13

localStorag面試前端

2021-12-02 08:19:06

MVCC面試數據庫

2021-02-28 07:52:24

蠕蟲數據金絲雀

2020-09-08 06:43:53

B+樹面試索引

2024-08-05 01:26:54

2020-08-03 07:38:12

單例模式

2020-07-02 07:52:11

RedisHash映射

2022-07-13 17:47:54

布局Flex代碼

2022-08-08 13:45:12

Redis面試Hash

2020-02-25 16:56:02

面試官有話想說

2022-05-23 08:43:02

BigIntJavaScript內置對象

2025-03-12 00:52:00

Java樂觀鎖悲觀鎖

2022-06-06 15:06:42

MySQLJAVA

2009-09-28 10:58:45

招聘

2021-09-28 13:42:55

Chrome Devwebsocket網絡協議

2021-03-24 10:25:24

優化VUE性能

2015-08-13 10:29:12

面試面試官

2021-11-24 07:56:56

For i++ ++i
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美中文 | 免费黄色av | 日韩在线观看一区 | 在线播放国产一区二区三区 | 日韩欧美综合在线视频 | 国产高清视频在线播放 | 国产成人久久精品一区二区三区 | 99精品在线 | 色婷婷av99xx| 国产高清一区二区三区 | 毛片在线免费 | 激情六月丁香 | 午夜视频大全 | 国产精品久久久久久久岛一牛影视 | 亚洲午夜精品视频 | 久久伊 | gav成人免费播放视频 | 国产欧美一区二区三区在线看蜜臀 | 日本在线视频一区二区 | 久久精品一区二区三区四区 | 国产综合精品 | 亚洲一区二区在线 | 午夜资源 | 人人玩人人添人人澡欧美 | 国产日韩一区二区 | 国产成人精品久久二区二区91 | 成人精品毛片国产亚洲av十九禁 | 欧美日韩视频在线第一区 | 国产成人精品一区二区三区视频 | 亚洲国产精品一区二区三区 | 午夜在线免费观看 | 久久精品—区二区三区 | 麻豆久久久久 | 欧美精品一区二区三区在线 | 美女国产一区 | 爱爱无遮挡 | 久久久精品日本 | 亚洲精品粉嫩美女一区 | 久久99精品久久久水蜜桃 | 在线国产视频 | 国产精品久久一区二区三区 |