保存Javascript变量以供以后使用?

时间:2013-10-06 17:33:27

标签: javascript persistence

我想知道是否有办法将一个或多个javascript变量保存到本地计算机,然后再调用它们?

var a = b

然后当你回到网页时它会记住B的值?

4 个答案:

答案 0 :(得分:9)

如果您的意思是在网络浏览器中,有两种选择:

  • Cookies

  • Web storage(在您的情况下,具体而言,“本地存储”而不是“会话存储”)

浏览器普遍支持Cookie,但用户可以将其关闭。 JavaScript中的API非常非常糟糕。 Cookie也会被发送到您的服务器,因此它们会增加对服务器的请求大小,但可以在客户端和服务器端使用。

设置一个cookie很简单,但阅读cookie客户端是一件痛苦的事。请查看上面的MDN页面以获取示例。

网络存储空间为supported by all major modern browsers(包括IE8及更高版本)。 API比cookie好得多。 Web存储纯粹是客户端,数据不会自动发送到服务器(当然,您可以自己发送)。

以下是使用网络存储的示例:Live Copy

<label>Value: <input type="text" id="theValue"></label>
<input type="button" id="setValue" value="Set">
<script>
(function() {
  // Use an input to show the current value and let
  // the user set a new one
  var input = document.getElementById("theValue");

  // Reading the value, which was store as "theValue"
  if (localStorage && 'theValue' in localStorage) {
    input.value = localStorage.theValue;
  }

  document.getElementById("setValue").onclick = function () {
    // Writing the value
    localStorage && (localStorage.theValue = input.value);
  };
})();
</script>

答案 1 :(得分:5)

您正在寻找的是如何制作和使用Cookies

  

Cookie是存储在访问者计算机上的变量。每次同一台计算机通过浏览器请求页面时,它也会发送cookie。使用JavaScript,您可以创建和检索cookie值。

答案 2 :(得分:2)

您可以使用Modernizr lib。

尝试HTML5本地存储

示例:

if (Modernizr.localstorage) {
    localStorage.setItem("bar", "1");
    var foo = localStorage.getItem("bar");
} else {
    // local storage unavailable
}

答案 3 :(得分:2)

您有三个选项可用于存储您可以稍后在同一域中的另一个网页中检索的状态:

  1. 将数据保存在Cookie中,然后在以后的网页中,从Cookie中检索数据。

  2. 将数据保存在用户浏览器的本地存储中,然后在将来的网页中从本地存储中检索数据。

  3. 以某种方式保存数据服务器端(通过post或ajax调用)然后让服务器将其重新放回到页面的下一次调用中,或者通过ajax调用从服务器请求它。

  4. 对于没有服务器端原因的简单客户端存储数据值,本地存储可能是最佳选择。您可以阅读有关本地存储here

    的信息
    // save data value
    localStorage.setItem("name", "John");
    
    // retrieve data value
    var name = localStorage.getItem("name");
    

    自IE8以来,IE已支持本地存储。如果您需要在旧版本的IE中提供支持,您可以使用cookie代替,也可以使用我之前链接的MDN页面中包含的本地存储垫片。