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. UVa 1572 Self-Assembly (构造+拓扑排序。。。。。)

    题意:给定n个带标号的正方形,标号要么是一个大写字母加一个+或-,要么是00, 当且仅当大写字母相同并且符号相反时可以连接,问你给定的能不能拼成一个无限大的的东西. 析:说实话,真心没有看出来是拓扑排 ...

  2. oss上传文件夹-cloud2-泽优软件

    泽优软件云存储上传控件(cloud2)支持上传整个文件夹,并在云空间中保留文件夹的层级结构,同时在数据库中也写入层级结构信息.文件与文件夹层级结构关系通过id,pid字段关联. 本地文件夹结构 文件 ...

  3. Android在layout xml中使用include[转]

    在Android的layout样式定义中,可以使用xml文件方便的实现,有时候为了模块的复用,使用include标签可以达到此目的.例如: <include layout="@layo ...

  4. HDU1269 迷宫城堡 2016-07-24 13:47 84人阅读 评论(0) 收藏

    迷宫城堡 Problem Description 为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的 ...

  5. C++ 引用 指针 使用举例

    1. 请看下程序 inline void CScanLineFill::removeOldNodeAET(AET* &aetList, const float yCurrent) { AET* ...

  6. 关于Windbg Local kernel debugging for Win7

    在使用Windbg的时候,如果在Win7上使用Kernel Debug时候会弹出下面的对话框: 在这个对话框中所描述的信息中我们可以看到这么一段话: “Local kernel debugging i ...

  7. 转:ObjectInputStream类和ObjectInputStream类的使用

    ObjectInputStream和ObjectInputStream类创建的对象被称为对象输入流和对象输出流. 创建文件输出流代码: FileOutputStream file_out = new ...

  8. CAS实战の简介

    一.SSO简介 单点登录的英文名称为Single Sign-On,简写为SSO,它是一个用户认证的过程,允许用户一次性进行认证之后,就访问系统中不同的应用:而不需要访问每个应用时,都重新输入密码.IB ...

  9. Android-BitmapUtil工具类

    Bitmap工具类,获取Bitmap对象 public class BitmapUtil { private BitmapUtil(){} /** * 根据资源id获取指定大小的Bitmap对象 * ...

  10. 再也不用线上倒数据了,使用 Faker 来造一批假的数据吧。

    背景每当建表之后,常常需要写一批假的数据,用于测试算法.数据量的压力测试.列表翻页. 查看详情.数据关联等.这时就需要借助一款造数据的工具,它就是今天所要介绍的 Faker. 介绍 Faker 这个工 ...