在Javascript中保留复杂数组

时间:2015-03-19 17:16:44

标签: javascript asp.net-mvc

您好我很难理解为了坚持我拥有的复杂数组我需要做些什么。该数组通过对jsonresult的ajax调用填充,并有两个字符串和2个对象,如下所示:

{

  Name

  Age

  Surname

  Object 1

  Object 2

}

每当我加载“主页面”时,此数组都会被填充。现在当我改变页面让我们说B页时,我仍然希望能够访问这些值。 我知道可以使用json stringify,但我想维护数组而不需要将其转换为字符串,因为我需要将数字转换回数字。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

此处的关键是Now when I change page to lets say page B I would like to still have access to those values.

Javascript范围(即您要使用的所有变量和函数)仅在页面生效时才存在。所以,如果你刷新,它会杀死范围(所有变量都会消失)!

那么,如何保留您的信息?正如评论者所说,你有一些选择。

  • 传统上,使用cookie - 有很多关于如何做到这一点的教程。它们存储密钥,值和到期日期。
  • HTML5 API引入了浏览器存储,通常比cookie更好,但支持程度较低(尽管现在在2015年相当不错)。
  • 您可以使用服务器端语言(如PHP,Ruby,Java等)将其存储在服务器上,并在呈现页面时将其传回页面。

基本上,如果刷新页面,Javascript本身不能存储变量。你必须使用上面的一个选项,这些选项本身都是一个有趣的学习曲线(在这个问题的范围之外)。

我建议按顺序:

  1. 如果您只是试验
  2. ,请从会话存储开始
  3. cookies,如果您想构建一个有弹性的解决方案
  4. 服务器端的东西,如果你想服用红色药丸。

  5. 顺便提一下,Javascript的表示法不正确 - 使用

    表示数组
    ["foo", "bar", "etc"]
    

    和Javascript对象(可用作关联数组)看起来像

    { "key": "value", "ghandi": "india", "mandela", "south africa" }