Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 会话存储似乎仍然是空的_Javascript_Html - Fatal编程技术网

Javascript 会话存储似乎仍然是空的

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

我是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 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