繁体   English   中英

html5会话存储有哪些替代方法?(非本地存储)

[英]What are the alternatives to html5 session storage?(not local storage)

我想要2个javascript方法来访问某些数据,而无需将此数据作为参数传递给任何方法。 基本上,我想要一种方法来设置数据,而另一种方法是使用浏览器中已经可用的对象来使用该数据,并且我希望该解决方案能够与Safari,Firefox,Chrome和IE8 +以及iOS和android浏览器一起使用。 我认为会话存储在iOS上不起作用。 这是正确的吗? 会话存储的缺点是什么? 我试图将数据附加到事件对象,但在Firefox和IE中不起作用。

尽管sessionStorage可用于iOS,但您可以执行以下操作以获取旧版支持。 您可以使用window.name 它通过会话存在(即,直到关闭浏览器选项卡):

var myData = {
  'foo': 'bar',
  'foz': 'baz'
};

window.name = JSON.stringify(myData);

您可以将其读回:

var myData = JSON.parse(window.name);

当然,这需要浏览器的JSON支持,这会使非常老的浏览器不在范围之内。

您可以使用“全局变量”(我在引号中加上了引号,因为我不确定它在Javascript中实际调用了什么)。 但基本上,您可以只在其中一个javascript文件中创建一个对象,然后对其进行写入/读取操作。

就像是

var data = { first: "first", second: "second" }

并根据需要在该对象中创建尽可能多的变量。 函数会像

function(param) {
    var firstData = data.first;
}

或者我猜想使用cookie更接近于您所描述的自己的解决方案,但是,如果您只需要在Javascript方法之间传递数据,那似乎就太过分了。

我选择了数据属性,而不是上面提到的方法,它们对我来说很好用。 IE9和IE8提出了一些我需要解决的问题。 在IE9和IE8中,数据属性有时起作用,有时不起作用。 在使用控制台查询元素的数据属性之后,它们开始工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM