0

不确定正确的方法。在一张大桌子上,第一列是一个链接,第二列是一个相应的文本。

此表中的行数未知(搜索结果)。

我想计算在任何第一列的链接上点击了多少次,并将这个计数*与其相关的文本值一起存储。* 这看起来像一个数组数组(但有未知的行数)但我想将它保存到会话存储中,这意味着一些 JSON 工作..

目标是保持访问者在离开页面并返回显示每个链接旁边已经做出的差异计数时所做的选择。这是某种购物车,所以我需要让这些数据保持活跃,直到不再需要它们为止。

谢谢

4

1 回答 1

1

对于支持它的浏览器,您可以使用 HTML5 的localStorageAPI。即使用户离开页面,这也会保留您存储的数据,并且当他/她回来时您可以从那里检索它。此数据将一直存在,直到清除浏览器缓存。有两个基本功能localStorage

  1. 设置器:要将数据设置为localStorage

    localStorage.setItem("bar", foo);
    
  2. getter:要获取您存储的数据localStorage

    var foo = localStorage.getItem("bar");
    

一些更重要的东西:

要检查当前浏览器是否支持localStorage,您可以尝试此功能:

function supports_html5_storage() {
  try {
    return 'localStorage' in window && window['localStorage'] !== null;
  } catch (e) {
    return false;
  }
}

通常,现代浏览器都支持这个 HTML5 API。这是支持表:

  • IE - 8.0+
  • 火狐 - 3.5+
  • 野生动物园 - 4.0+
  • 铬 - 4.0+
  • 歌剧 - 10.5+
  • IPHONE - 2.0+
  • 安卓 - 2.0+**

更多信息在这里。

另一种方法是使用cookie.js,它将值存储在浏览器的 cookie 中。但建议使用localStoragecookie 来代替。

编辑

假设你有一个像这样的二维数组:

var foo = [[1,2],[3,4],[5,6]];

要将其设置为localStorage,您必须将其解析为字符串:

var parsedFoo = JSON.stringify(foo);
localStorage.setItem("bar", parsedFoo);

要从中获取它localStorage并将其用作 2D 数组,请使用JSON.parse

var foo = JSON.parse(localStorage.getItem("bar"));
于 2013-07-26T08:49:47.413 回答