JSON.stringify 有性能的问题,移动端尤其明显。下面我们来看看如何优化。

原始写法:

function store(key, val) {
localStorage.setItem(key, JSON.stringify(val));
} store('num', 1);
store('on', true);
store('name', 'pamela');
store('obj', {'hello': 'world'});

用tyoeOf进行优化:

function store(key, val) {
if (typeof val === 'object') {
localStorage.setItem(key, JSON.stringify(val));
} else {
localStorage.setItem(key, val);
}
} store('num', 1);
store('on', true);
store('name', 'pamela');
store('obj', {'hello': 'world'})

用参数进行优化:

function store(key, val, isObject) {
if (isObject) {
localStorage.setItem(key, JSON.stringify(val));
} else {
localStorage.setItem(key, val);
}
} store('num', 1);
store('on', true);
store('name', 'pamela');
store('obj', {'hello': 'world'}, true);

将参数中数字变为字符串,作进一步优化:

function store(key, val, isObject) {
if (isObject) {
localStorage.setItem(key, JSON.stringify(val));
} else {
localStorage.setItem(key, val);
}
} store('num', '1');
store('on', 'true');
store('name', 'pamela');
store('obj', {'hello': 'world'}, true);
 

【优化】JSON.stringify()使用优化的更多相关文章

  1. C# 将MSMQ消息转换成Json格式 【优化】

    C# 将MSMQ消息转换成Json格式  [优化] 转换函数: private string ConvertToJSON(string label, string body) { //TODO: co ...

  2. JSON.stringify() 的深入理解

    目录 序言 语法 深入理解 序言 最近在看<你所不知道的javascript>[中卷]一书,第一部分是类型和语法.本文是基于这部分的产物.在强制类型转换->抽象值操作-> to ...

  3. 使用fast-json-stringify代替JSON.stringify

    使用JSON.stringify的思考 使用过JSON对象的程序员最常做的一项工作便是,将JSON对象转化为字符串.该字符串的用途很多,例如可以使用在WEB的URL中,在多个页面间进行传递. cons ...

  4. 当我们进行性能优化,我们在优化什么(LightHouse优化实操)

    好的互联网产品不仅仅在功能上要高人一筹,在性能层面也需要出类拔萃,否则金玉其外败絮其中,页面是美轮美奂了,结果首屏半天加载不出来,难免让用户乘兴而来,败兴而归. 幸运的是,前端的性能优化有诸多有迹可循 ...

  5. JSON.parse()和JSON.stringify()

    1.parse 用于从一个字符串中解析出json 对象.例如 var str='{"name":"cpf","age":"23&q ...

  6. JSON.stringify()与JSON.parse()

    JSON.stringify()用于把一个对象解析成字符串,如 var student = { age: 23, name: 'wang' } JSON.stringify(student); 结果: ...

  7. ASP.NET 5 - $.ajax post JSON.stringify(para) is null

    JavaScript 代码: var para = {}; para.id = $("#ad-text-id").val(); para.title = $("#ad-t ...

  8. [MySQL性能优化系列]LIMIT语句优化

    1. 背景 假设有如下SQL语句: SELECT * FROM table1 LIMIT offset, rows 这是一条典型的LIMIT语句,常见的使用场景是,某些查询返回的内容特别多,而客户端处 ...

  9. JSON.stringify()和JSON.parse()

    parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...

随机推荐

  1. afx_msg解释

    以前一直不知道AFX_MSG是什么意思,只是觉得它应该是个消息映射函数,但是具体代表什么意思,会返回一个什么样的值是一点都不清楚,今天查了下资料,把查到的东西放这,以免以后忘了还得再查. 在头文件(D ...

  2. hdu 5015 233矩阵快速幂

    http://acm.hdu.edu.cn/showproblem.php?pid=5015 需要构造一个 n+2 维的矩阵. 就是要增加一维去维护2333这样的序列. 可以发现 2333 = 233 ...

  3. svg transform

    看了这个页面的说明:http://www.2cto.com/kf/201301/186980.html 总结如下:transform包括:translate(tx,ty),scale(sx,sy),r ...

  4. java递归和反向递归

    1. 递归查询树tree结构有两种做法: 第一种,递归查询数据库结构, 第二种,一次性将数据库表中的所有数据查出来,然后再递归查出来的list集合, 第一种做法适合数据量较少的tree结构,因为要一直 ...

  5. Linux服务器目录空间不足解决措施

      一般情况下工作环境中我们的服务或数据库文件都会存储在一个单独挂载的分区中,一般占空间比较大的大多就是服务的运行日志以及数据库文件,当我们分区的可用空间不足时就需要我们对分区进行扩容,或者找其它方法 ...

  6. 常用kubectl命令总结

    command kubectl kubectl 输出格式 显示Pod的更多信息 kubectl get pod <pod-name> -o wide 以yaml格式显示Pod的详细信息 k ...

  7. Team Foundation Server 开发流程管理管理研讨会

    这周,和微软公司的朋友一起,受北京某金融企业邀请,为企业软件部门一个70多人的软件团队提供了一场基于Team Foundation Server的软件软件流程的技术研讨会.在研讨会中,培训基于微软Te ...

  8. jQuery插件开发的五种形态小结

    关于jQuery插件的开发自己也做了少许研究,自己也写过多个插件,在自己的团队了也分享过一次关于插件的课.开始的时候整觉的很复杂的代码,现在再次看的时候就清晰了许多.这里我把我自己总结出来的东西分享出 ...

  9. C#存储过程调用的三个方法

    //带参数的SQL语句 private void sql_param() { SqlConnection conn = new SqlConnection("server=WIN-OUD59 ...

  10. ASP.NET Core 2 学习笔记(五)静态文件

    之前的ASP.NET网站,只要把*.html.*.css.*.jpg.*.png.*.js等静态文件放在项目根目录,默认都可以直接被浏览:但ASP.NET Core 小改了浏览静态文件的方式,默认根目 ...