Javascript 会话存储似乎仍然是空的
我是HTML5/Javascript新手,我想我有一个概念上的问题。我使用Aptana作为我的环境,它使用FireFox作为浏览器进行调试 下面是有问题的代码:Javascript 会话存储似乎仍然是空的,javascript,html,Javascript,Html,我是HTML5/Javascript新手,我想我有一个概念上的问题。我使用Aptana作为我的环境,它使用FireFox作为浏览器进行调试 下面是有问题的代码: var req = new ContactRequest("Mister Peachy", "peach.png", "One Liner Message" ); sessionStorage.Requests = new Array(); sessionStorage.Requests[0] = req; req = new Co
var req = new ContactRequest("Mister Peachy", "peach.png", "One Liner Message" );
sessionStorage.Requests = new Array();
sessionStorage.Requests[0] = req;
req = new ContactRequest("Anon Ymous", "person.png", "Another one line msg");
sessionStorage.Requests[1] = req;
问题似乎是sessionStorage.Requests始终等于“”。我尝试使用.setItem,但也不起作用。
sessionStorage
无法存储对象,它只能存储字符串
如果要存储其他内容,则必须使用JSON。
sessionStorage
无法存储对象,它只能存储字符串
如果要存储任何其他内容,必须使用JSON
每个存储对象提供对键/值对列表的访问,
它们有时被称为物品。键是字符串。任何字符串
(包括空字符串)是有效密钥。价值观是相似的
字符串
重点补充。无法在sessionStorage中存储对象
对此也有评论:
注:虽然可以通过标准设置和读取值
getItem和setItem方法的JavaScript属性访问方法用法
建议使用
注意:请记住,您存储在任何存储库中的所有内容
通过其.toString方法将本页中描述的转换为字符串
在储存之前。因此,尝试存储公共对象将导致
要存储的字符串“[对象]”而不是对象或其
JSON表示。使用本机JSON解析和序列化
浏览器提供的方法是一种很好的常用存储方法
字符串格式的对象
从
每个存储对象提供对键/值对列表的访问,
它们有时被称为物品。键是字符串。任何字符串
(包括空字符串)是有效密钥。价值观是相似的
字符串
重点补充。无法在sessionStorage中存储对象
对此也有评论:
注:虽然可以通过标准设置和读取值
getItem和setItem方法的JavaScript属性访问方法用法
建议使用
注意:请记住,您存储在任何存储库中的所有内容
通过其.toString方法将本页中描述的转换为字符串
在储存之前。因此,尝试存储公共对象将导致
要存储的字符串“[对象]”而不是对象或其
JSON表示。使用本机JSON解析和序列化
浏览器提供的方法是一种很好的常用存储方法
字符串格式的对象
您需要做的是对数据进行字符串化以进行存储,并对其进行解析以进行检索。这是我写的一个小界面
App.session = (function () {
var self = {};
self.get = function (key) {
var b = sessionStorage.getItem(key);
return b ? JSON.parse(b) : null;
}
self.set = function (key, value) {
var b = JSON.stringify(value);
sessionStorage.setItem(key, b);
}
return self;
})();
var session = App.session;
session.set('foo', 'bar');
var bar = session.get('foo');
console.log(bar);
您需要做的是对数据进行字符串化以进行存储,并对其进行解析以进行检索。这是我写的一个小界面
App.session = (function () {
var self = {};
self.get = function (key) {
var b = sessionStorage.getItem(key);
return b ? JSON.parse(b) : null;
}
self.set = function (key, value) {
var b = JSON.stringify(value);
sessionStorage.setItem(key, b);
}
return self;
})();
var session = App.session;
session.set('foo', 'bar');
var bar = session.get('foo');
console.log(bar);
还请注意,默认情况下并非所有浏览器都支持JSON,但如果JSON2()不是内置的,您可以使用它。@马特:您知道有任何浏览器支持sessionStorage而不是JSON吗?还请注意,默认情况下并非所有浏览器都支持JSON,但您可以使用JSON2()当默认情况下它不是内置的。@马特:你知道有任何浏览器支持sessionStorage,但不支持JSON吗?@Driss Zouak:没错<代码>会话存储和
本地存储
共享完全相同的内容API@Driss邹克:没错<代码>会话存储和本地存储
共享完全相同的API