HTML5存储

查看:159
本文介绍了HTML5存储的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

sessionStorage存储的数据类型具体有哪些 我去搜索了一下,基本都是说字符串类型。我自己也试了一下,sessionStorage能存储字符串类型数据和数组数据。但不能存储对象类型,需要先转化成字符串,才能存放。但我想数组也是对象啊,怎么能存储。有没有哪位大神能详细说说的

var arr = [1,2,3];
window.sessionStorage.setItem('key',arr);
document.body.innerHTML = window.sessionStorage.getItem('key');

这样是能行的

var json = {'aaa': 'aaa','bbb': 'bbb'};
window.sessionStorage.setItem('key',json);
document.body.innerHTML = window.sessionStorage.getItem('key');

这样是不行的,必须先把json转化成string类型

解决方案

一般存储数据的接口只能支持基本类型(数值、字符串等)。在js中,Array可以自动转换成字符串,例如[1, 2, 3]可以转换成"1, 2, 3",注意这转换过来的数据不是json格式的。普通的Object对象就不支持了。

var obj = { a:1, b:2 }
var arr = [1, 2, 3];
Object.prototype.toString = function(){
    return JSON.stringify(this);
}
Array.prototype.toString = function(){
    return JSON.stringify(this);
}
console.log('' + obj);//可以试试注释了上面Object.prototype的修改的结果
console.log('' + arr);//可以试试注释了上面Array.prototype的修改的结果

不过在项目的使用中,还是不要修改Object.prototype的方法,自己转换成字符串就可以了。

这篇关于HTML5存储的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆