首页 > 其他分享 >js storage 存储大小测试

js storage 存储大小测试

时间:2023-05-19 21:24:24浏览次数:33  
标签:10 存储 storage js strategy trySize test pieces size

 1 function env(strategy) {
 2     const _strategy = window[strategy];
 3     function getStr(size) {
 4         return Array(size + 1).join("1");
 5     }
 6 
 7     function test(pieces, size) {
 8         let count = 0,
 9             piece = pieces.shift(),
10             trySize = size;
11         if (pieces.length) {
12             try {
13                 while (true) {
14                     trySize = size + (count + 1) * piece;
15                     _strategy.setItem(`${strategy}:test`, getStr(trySize));
16                     count++;
17                 }
18             } catch (err) {
19                 return test(pieces, trySize - piece);
20             }
21         } else {
22             let K = size / 2 ** 10,
23                 M = K / 2 ** 10;
24             return { K, M };
25         }
26     }
27 
28     _strategy.clear();
29 
30     const { K, M } = test(
31         [20, 18, 16, 13, 10].map((level) => 2 ** level), // 预估一个存储梯度
32         0,
33     );
34 
35     _strategy.clear();
36 
37     console.log(`${strategy}大致可存储 ${K}K,合约 ${M}M`);
38 }
39 
40 env("localStorage");
41 env("sessionStorage");

 

标签:10,存储,storage,js,strategy,trySize,test,pieces,size
From: https://www.cnblogs.com/aurora-power/p/17416329.html

相关文章

  • jsp页面连接mysql数据库报错“com.mysql.jdbc.Driver”
    今天在做web实验的时候数据库突然连不上了以下是报错我用的mysql包为mysql-connector-java:5.1.47找了好久后来在一篇博客的启发下,那篇博客中说把一般包为web下lib目录中后来我仔细观察,发现我添加的包在WEBINF目录下的classes下的lib中,难怪找不到我把它移动到外面就可以了......
  • Cannot cast Newtonsoft.Json.Linq.JObject to Newtonsoft.Json.Linq.JToken.
    @@CannotcastNewtonsoft.Json.Linq.JObjecttoNewtonsoft.Json.Linq.JToken 解决方法方法参数为[FromBody]objectcontent JObjectjo=(JObject)JsonConvert.DeserializeObject(content.ToString());JToken[]jtoArray=jo["contentBody"].ToArray();List<......
  • JS逆向 -- 某视频vurl值的加密分析
    接上节课内容JS逆向--某视频vid值的加密分析JS逆向--某视频val值和pid值的加密分析一、在上节课中有个vurl的值需要分析,具体内容如下vurl:https://mp4play-hs-cdn.ysp.cctv.cn/o000017kuww.jbZe10002.mp4?sdtfrom=4330701&guid=lhsuf6ia_0rieucpidpbc&vkey=617E34BF5E31E04......
  • mybatis plus实体类中字段映射mysql中的json格式方式
    packagecom.example.springbootstudy.entity;importcom.baomidou.mybatisplus.annotation.TableField;importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotation.TableName;importcom.baomidou.mybatisplus.extension.handlers.Fas......
  • js 手写深比较
     functionisObject(obj){returntypeofobj==='object'&&obj!==null}functionisEqual(obj1,obj2){if(!isObject(obj1)||!isObject(obj2)){returnobj1===obj2;}if(obj1===obj2){returntrue;}leto......
  • js中 new 运算符的作用
    在JavaScript中,new运算符用于创建一个对象实例。它的作用是通过调用构造函数创建一个新的对象,并且将该对象作为上下文来执行构造函数,最后返回这个新创建的对象。使用new运算符的一般语法如下:letnewObj=newConstructor();其中,Constructor是一个构造函数,newObj是通过......
  • SpringBoot实现WebSocket发送接收消息 + Vue实现SocketJs接收发送消息
    SpringBoot实现WebSocket发送接收消息+Vue实现SocketJs接收发送消息参考:1、https://www.mchweb.net/index.php/dev/887.html2、https://itonline.blog.csdn.net/article/details/81221103?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2......
  • 第三章:存储与检索
    当你把数据交给数据库时,它应当把数据存储起来;而后当你向数据库要数据时,它应当把数据返回给你。驱动数据库的数据结构我们可以简单的使用键值实现存储功能,然后保存在文本中。底层的存储格式非常简单:一个文本文件,每行包含一条逗号分隔的键值对,文件尾部追加写入将有很好的性能。......
  • nodejs的cookie实现module(cookie.js)
     文件名:cookie.js//Directlysendcookietosystem,ifit'snode.jshandler,send://request.headers.cookie//Ifit'ssocket.iocookie,send://client.request.headers.cookiemodule.exports.cookie=function(co){this.cookies={};co&......
  • nodejs 解析php的session_decode 的module(session_decode.js)
    文件名:session_decode.js//exports.session_decode=function(){//varmessage="Hellofromtheohaitheremodule";//returnmessage;//};exports.session_decode=function(data){//*example:session_decode('firstName|s:5:&quo......