精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

不管你信不信,面試官讓我使用 JS 計算 LocalStorage 的容量!

開發 前端
LocalStorage 是瀏覽器提供的一種本地會話存儲的方式,最大支持 5M 的存儲空間。雖說它的存儲空間是有上限的,但是我相信很多同學都和我一樣,在日常開發中其實并沒有關注過這個問題。畢竟 5M 的默認存儲針對數據而言已經非常大了。

Hello,大家好,我是 Sunday。

現在的面試總會遇到很多“奇葩”的問題,不過本著“存在即合理”的態度,從“深入JS”的角度來看,這些個性化的面試題還是挺有意思的。

所以,咱們今天就來看一個“奇葩”面試題:如何使用JS來計算LocalStorage的容量

本文為譯文:https://javascript.plainenglish.io/believe-it-or-not-interviewer-asks-me-to-calculate-localstorage-capacity-using-javascript-12928482e096

01:什么時候需要關注 LocalStorage 空間?

LocalStorage 是瀏覽器提供的一種本地會話存儲的方式,最大支持 5M 的存儲空間。

雖說它的存儲空間是有上限的,但是我相信很多同學都和我一樣,在日常開發中其實并沒有關注過這個問題。畢竟 5M 的默認存儲針對數據而言已經非常大了。

但是,如果你在面對一些足夠復雜的項目,涉及到大量的數據本地存儲且沒有使用 IndexDB 的前提下,那么關注 LocalStorage 存儲空間位置,就變得有意義了。

02:如何計算容量

為了計算總容量,我們將使用 10KB 為單位,相當于 10240 字節。我們將不斷向 LocalStorage 添加 10KB 塊,直到它已滿并引發錯誤。此時,我們統計所有累積的數據,這就是總存儲量!

在 JavaScript 中,字符串使用 UTF-16 編碼存儲。這意味著每個字符通常占用 2 個字節的內存空間。但是,對于某些特殊字符(例如表情符號或某些不太常見的語言字符),它們可能最多使用 4 個字節。

"a".length // 1
"??".length // 2

要估計字符串占用的內存空間(以字節為單位),可以將字符串的長度乘以字符的平均字節大小。對于常規字符集(不包括特殊字符),我們可以這樣估計:

var str = "Hello, World!";
var bytes = str.length * 2; // 2 bytes 
console.log(bytes + " bytes"); // 輸出: 26 bytes

要計算以千字節 (KB) 為單位的大小,可以將字節總數除以 1024(1 KB = 1024 字節)

var kb = bytes / 1024;
console.log(kb + " KB"); // 輸出: 0.025 KB

注意:這是一個粗略的估計。由于 JavaScript 引擎的實現、字符串中是否存在特殊字符以及其他因素,實際消耗的內存可能會有所不同。

下面是一段 JavaScript 代碼,可幫助您計算 LocalStorage 的總容量:

// 要制作精確的 10KB 字符串,我們需要一個長度為 5120 個字符的字符串。 UTF-16編碼下,每個字符占用2個字節。因此,5120 個字符等于 10240 個字節,相當于 10KB。

// 然后,它會重復將此字符串添加到 LocalStorage,直到拋出錯誤,表明 LocalStorage 已滿。

const computedTotal = () => {
  return new Promise((resolve) => {
    let str = "0123456789";

    // 首先,我們創建一個10 KB字符串
    while (str.length < 5120) {
      str += "0123456789";
    }

    // 清除本地存儲
    localStorage.clear();

    let temp = str;

    // 繼續將10 KB累積到LocalStore中
    const timer = setInterval(() => {
      try {
        localStorage.setItem("temp", temp);
        temp += str; // 將另外10 KB添加到臨時字符串
      } catch {
        // 如果拋出錯誤,這意味著我們已經超出了最大存儲空間
        // 考慮每個字符為2字節,以KB為單位計算大小
        resolve((temp.length * 2) / 1024);
        clearInterval(timer);
        // 計算后記得清除LocalStore
        localStorage.clear();
      }
    }, 0);
  });
};

(async () => {
  const total = await computedTotal();
  console.log(`最大容量: ${total}KB`); // 10240KB
})();

圖片圖片

注意:

運行該函數后,我們看到結果是10MB的字節數,這偏離了眾所周知的 5MB 限制。

根據UTF-16編碼規則,每個字符(chart)要么是2字節,要么是4字節。因此,官網中所說的 5MB,其單位就是字符串的長度。

03:如何計算已使用的容量

要計算已使用的容量,我們需要做的就是迭代 LocalStorage 上的存儲屬性并計算每個存儲屬性的長度。將它們全部加起來就得到了總已用容量!

const computedUse = () => {
  let cache = 0;
  // 循環訪問LocalStore中的所有 key
  for(let key in localStorage) {
    // 檢查 key 是否是LocalStore的一部分(而不是其原型)
    if (localStorage.hasOwnProperty(key)) {
      // 將每個項目的長度添加到總緩存中
       cache += localStorage.getItem(key).length * 2; // 每個字符計為2個字節
    }
  }
  // 將總數從字節轉換為千字節并固定為2位小數
  return (cache / 1024).toFixed(2);
};

(async () => {  
  // 創建一個大字符串“o”用于測試目的
  let o = '0123456789';
  for(let i = 0 ; i < 1000; i++) {
    o += '0123456789';
  }
  
  // 將大字符串存儲在LocalStore中
  localStorage.setItem('o', o);
  
  // 計算使用容量
  const useCache = computedUse();
  console.log(`計算結果: ${useCache}KB`); // 19.55KB
})();

圖片圖片

04:計算可用容量

在確定了 LocalStorage 的總容量和已用容量后,我們可以通過從總容量中減去已用容量來輕松計算剩余可用容量。

下面是執行此計算的JavaScript 函數:

const computedsurplus = (total, use) => {
  return total - use;
};

(async () => {
  // 計算Local存儲總容量
  const total = await computedTotal();
  
  // 創建一個大字符串“o”用于測試目的
  let o = '0123456789';
  for(let i = 0 ; i < 1000; i++) {
    o += '0123456789';
  }
  
  // 將大字符串存儲在LocalStore中
  localStorage.setItem('o', o);
  
  // 假設 computedUse 是一個計算已用容量的函數
  const useCache = computedUse();
  
  // 計算并記錄剩余可用容量
  console.log(`剩余可用容量: ${computedsurplus(total, useCache)}KB`); // 10220.45 KB
})();

圖片圖片

責任編輯:武曉燕 來源: 程序員Sunday
相關推薦

2024-04-08 10:35:59

JS代碼容量

2019-07-16 10:09:04

程序員Python腳本語言

2021-12-13 09:02:13

localStorag面試前端

2020-05-22 08:11:48

線程池JVM面試

2021-12-02 08:19:06

MVCC面試數據庫

2020-09-17 17:53:12

面試ArrayList數組

2022-11-15 17:45:46

數據庫MySQL

2020-07-02 07:52:11

RedisHash映射

2021-03-01 18:42:02

緩存LRU算法

2024-08-05 01:26:54

2019-07-23 09:30:17

HTTP 2.0HTTP協議傳輸

2022-07-13 17:47:54

布局Flex代碼

2019-04-29 14:59:41

Tomcat系統架構

2009-12-28 10:00:22

2025-02-27 00:08:24

2020-02-25 16:56:02

面試官有話想說

2015-08-13 10:29:12

面試面試官

2025-03-10 08:00:05

2022-08-18 20:02:04

JSLRU緩存

2020-12-10 08:43:17

垃圾回收JVM
點贊
收藏

51CTO技術棧公眾號

午夜精品123| av电影在线观看不卡| 日韩视频一区在线| 99riav国产精品视频| 亚洲天堂资源| 亚洲欧美成人一区二区三区| 久久99精品久久久久久久久久| 中文字幕一区二区人妻痴汉电车| 欧美啪啪一区| 中文字幕不卡在线视频极品| 日本少妇xxxx软件| 国产资源一区| 色综合久久99| 青青草精品视频在线| 韩日视频在线| 成人av资源在线| 91日本在线观看| 午夜精品免费观看| 精品动漫av| 超碰日本道色综合久久综合| 中文精品在线观看| 97久久综合区小说区图片区| 欧美人动与zoxxxx乱| 国产成人无码精品久久久性色| 免费高清在线观看| 国产日韩欧美在线一区| 国产亚洲一区二区三区在线播放| 国产精品高清无码| 国产美女精品| 久久久久久有精品国产| 国产大片免费看| 日韩精品久久久久久久电影99爱| 亚洲精品97久久| 国产av一区二区三区传媒| 亚洲一区导航| 欧美日韩一区二区不卡| 能在线观看的av网站| 欧美freesex黑人又粗又大| 亚洲视频一区在线| 亚洲区中文字幕| 成人免费在线网址| 无码人妻丰满熟妇精品| 一区在线视频观看| 欧美精品生活片| 国产又色又爽又高潮免费| 国产综合久久久| 亚洲欧美另类国产| 亚洲av无码一区二区二三区| 久久久久97| 日韩av中文字幕在线免费观看| 亚洲911精品成人18网站| 国产亚洲字幕| 日韩精品一区二区三区四区视频 | 香蕉久久国产| 2025国产精品视频| 国产精品人人人人| 久久免费高清| 国产精品激情自拍| 中文字幕一区二区三区波野结| 日产国产高清一区二区三区| 国产精品免费一区二区三区都可以| 色屁屁影院www国产高清麻豆| 国产日韩欧美三级| 国产99久久精品一区二区 夜夜躁日日躁| 国产九色在线播放九色| 国产精品亚洲欧美| 国产精品高潮呻吟视频| 中文字幕人妻丝袜乱一区三区| 日韩成人伦理电影在线观看| 国产精品爽黄69| 国产三区在线播放| 国产成人免费在线| 国产一级精品aaaaa看| 日韩大胆人体| 国产精品久久夜| 国产av不卡一区二区| 日韩特级毛片| 色视频成人在线观看免| av免费一区二区| 永久免费精品视频| 亚洲欧美激情四射在线日| 国产精品久久久免费看| 欧美人成网站| 国产激情999| 国产乱色精品成人免费视频| 波多野结衣91| 亚洲色图自拍| 成人ssswww在线播放| 欧美在线视频你懂得| 日本黄色www| 亚洲区小说区图片区qvod| 色老头一区二区三区在线观看| 国产又黄又爽又无遮挡| 老鸭窝毛片一区二区三区| 国产中文日韩欧美| 日韩大胆视频| 亚洲一卡二卡三卡四卡五卡| 午夜免费精品视频| 国产精品45p| 久久精品美女视频网站| 国产微拍精品一区| 国产麻豆成人精品| 欧美日韩国产精品一卡| 在线观看a级片| 91豆麻精品91久久久久久| 亚洲成人av免费观看| 国产亚洲一卡2卡3卡4卡新区| 久久综合88中文色鬼| av资源免费观看| 国产精品一区二区黑丝| 日韩久久久久久久| 岛国av免费在线观看| 91精品黄色片免费大全| x88av在线| 亚洲一区二区免费看| 91pron在线| 尤物网在线观看| 色婷婷久久久综合中文字幕| 性活交片大全免费看| 亚洲精品极品少妇16p| 国产精品吊钟奶在线| 婷婷国产在线| 亚洲福利一区二区三区| 想看黄色一级片| 国产成人一区| 欧美在线免费看| 四季av日韩精品一区| 一区二区三区精品| 亚洲一区二区中文字幕在线观看| 精品国产一区二区三区四区| 91精品国产九九九久久久亚洲| 亚洲精品网站在线| 亚洲色图欧洲色图婷婷| 午夜天堂在线视频| 久久一区二区三区喷水| 国产精品av免费在线观看| 日韩一区av| 日韩人在线观看| 爱爱的免费视频| 国产日韩欧美一区| 九九99玖玖| 天堂√8在线中文| 日韩大陆毛片av| 国产区在线观看视频| 99国产精品久久久| 男人添女人下部高潮视频在观看| 99久热这里只有精品视频免费观看| 久久国产精品99国产精| av中文字幕在线免费观看| 亚洲最新视频在线观看| 2018国产精品| 99成人精品| 久久久国产精品一区二区三区| 最新日韩精品| 亚洲性无码av在线| 中文字幕无线码一区| 国产精品的网站| 亚洲女人在线观看| 国产精品www994| 久久riav| 亚洲不卡系列| 久久综合88中文色鬼| 亚洲第一成年人网站| 亚洲国产成人av好男人在线观看| 午夜剧场免费看| 久久av一区二区三区| 亚洲高清不卡一区| 国产精品久一| 国自产精品手机在线观看视频| 天天干天天摸天天操| 一二三区中文字幕| 日韩一区二区在线| 亚洲国产日韩在线一区模特| 欧亚乱熟女一区二区在线| 国产午夜精品一区二区三区欧美| 欧美二区在线看| 欧美jizz18| 九九热精品视频在线播放| 亚洲视频在线二区| 日韩在线亚洲| 欧美一区二区三区精品电影| 大地资源中文在线观看免费版| 欧美群妇大交群的观看方式| 久久精品一级片| 久久久不卡影院| 免费黄频在线观看| 国产精品久久久久9999高清| 天天好比中文综合网| 麻豆国产一区二区三区四区| 91精品91久久久久久| 在线毛片网站| 亚洲国产黄色片| 一级片在线免费观看视频| 亚洲午夜在线电影| 免费一级suv好看的国产网站| 国产成人鲁色资源国产91色综| 999香蕉视频| 欧美精品国产一区二区| 日本在线高清视频一区| 成人免费直播在线| 成人av在线亚洲| 最新欧美色图| 欧美国产日韩一区二区| 91成人高清| 国产偷国产偷亚洲清高网站| 国产黄色美女视频| 欧美私模裸体表演在线观看| 日本三级视频在线| 亚洲欧美福利一区二区| 亚洲无人区码一码二码三码的含义| 国产成人精品亚洲777人妖 | 久久久久国产精品一区二区| 男人草女人视频| 日韩欧美一区免费| 欧美精品中文字幕一区二区| av成人综合| 成人写真福利网| 日韩毛片一区| 国产成人一区二区三区小说| 操人在线观看| 久久久久久网址| 影音先锋中文在线视频| 日韩视频亚洲视频| 91caoporm在线视频| 国产亚洲欧美日韩美女| 性xxxx18| 亚洲精品电影久久久| 男人的天堂a在线| 日韩视频免费观看高清完整版 | 免费成人在线视频观看| 国产女女做受ⅹxx高潮| 中文久久精品| 亚洲美免无码中文字幕在线| 国产精品第十页| 91免费版看片| 欧美一区影院| 欧美一级特黄aaaaaa在线看片| 91麻豆国产自产在线观看亚洲| 日本一区免费在线观看| 你微笑时很美电视剧整集高清不卡| 国产一区免费在线观看| 精品国内亚洲2022精品成人| 国产伦精品一区二区| 国产女人18毛片水真多18精品| 97se亚洲综合在线| 亚洲成人影音| 国产精品视频免费观看| 99ri日韩精品视频| 久久福利电影| 国产欧美日韩在线一区二区| 欧美日本国产精品| 欧美三级情趣内衣| 亚洲精品一区二区三区av| 日韩成人三级| 一道本在线观看视频| 欧美日本三区| 日本中文字幕网址| 日韩高清在线一区| 污污的网站免费| 国产一区二区免费在线| 亚洲婷婷在线观看| 99久久综合国产精品| 高潮毛片无遮挡| 中文av一区二区| 538任你躁在线精品视频网站| 亚洲一二三区在线观看| 久久精品视频1| 欧美日韩一二三区| 亚洲高清视频在线播放| 国产视频久久久| 欧美a免费在线| 久久久最新网址| 精品亚洲美女网站| 91免费视频网站| 欧美理论电影在线精品| 手机看片福利永久国产日韩| 女人天堂亚洲aⅴ在线观看| www.av片| 免费成人在线观看| 麻豆av免费看| 欧美经典一区二区| 欧美成人精品欧美一级私黄| 都市激情亚洲色图| 国产又黄又粗又猛又爽| 日韩精品免费视频| 国产一二区在线观看| 国产69久久精品成人| 午夜精品久久久久久毛片| 成人av影视在线| 日本久久精品| 国产乱子伦农村叉叉叉| 精品一区二区免费看| 欧美一级片黄色| 中文字幕永久在线不卡| 久久国产精品系列| 在线播放91灌醉迷j高跟美女| 五月天丁香视频| 久热精品视频在线观看| 欧美91看片特黄aaaa| 成人一区二区在线| 第一会所sis001亚洲| 黄色网页免费在线观看| 激情综合色播激情啊| 手机免费看av| 亚洲国产aⅴ成人精品无吗| 91激情在线观看| 亚洲日本中文字幕| 91九色美女在线视频| 91九色视频在线| 精品国产91| 777精品久无码人妻蜜桃| 国产一区二区三区精品视频| 超碰97av在线| 一本大道av伊人久久综合| 免费国产羞羞网站视频| 美女黄色丝袜一区| 亚洲精品乱码日韩| 日本10禁啪啪无遮挡免费一区二区| 在线成人欧美| 日韩精品――色哟哟| 亚洲欧美日韩在线播放| 最近中文字幕在线免费观看| 亚洲美女动态图120秒| av影院在线| 国产日韩一区欧美| 亚洲午夜黄色| 亚洲综合中文网| 玉足女爽爽91| 国产高清视频免费| 九九精品在线播放| 国产美女亚洲精品7777| 国产精品jizz在线观看老狼| 蜜臀a∨国产成人精品| av网在线播放| 欧洲av在线精品| p色视频免费在线观看| 国产精品xxx视频| 精品国产一区二区三区噜噜噜 | 国产另类ts人妖一区二区| 成年人视频软件| 欧美老女人第四色| 国产福利在线播放麻豆| 亚洲综合在线中文字幕| 在线电影一区二区| 成人三级做爰av| 亚洲国产一区二区在线播放| 亚洲精品国产suv一区| 久久久久久久久中文字幕| 日韩中文字幕一区二区高清99| 亚洲黄色网址在线观看| 懂色av中文字幕一区二区三区| 国产亚洲精品码| 亚洲精品久久久久国产| 亚洲精品**中文毛片| 日韩色妇久久av| 九色|91porny| 亚洲国产美女视频| 精品国产乱码久久| 国产伦理精品| 欧美一区二区三区四区夜夜大片 | 欧美亚洲国产bt| 在线视频婷婷| 91精品久久久久久蜜桃| 一区三区视频| 国产av自拍一区| 制服丝袜亚洲精品中文字幕| 中文字幕免费高清电视剧网站在线观看 | 黄网在线观看视频| 亚洲欧洲国产一区| 亚洲狼人综合| 成人免费视频91| 国产日韩欧美一区二区三区综合| 一级片aaaa| 久久久综合免费视频| 精品美女久久久| 天堂网成人在线| 日韩欧美一区视频| 久久久久久国产精品免费无遮挡| 成人欧美一区二区三区视频xxx| 亚洲欧美成人| 日韩精品一区二区亚洲av性色 | 亚洲青涩在线| www.99热| 337p日本欧洲亚洲大胆色噜噜| 欧美日韩五码| 国产 欧美 日韩 一区| 国产日韩视频一区二区三区| 亚洲AV无码一区二区三区少妇| 欧美亚洲日本网站| 中文字幕亚洲精品乱码| 爱爱的免费视频| 日韩欧美高清dvd碟片| 校园春色亚洲色图| 日本久久久网站| 国产精品亲子伦对白| 无码精品黑人一区二区三区| 成人国产精品色哟哟| 久久一本综合频道| 2018天天弄| 色偷偷av一区二区三区乱|