保存 Javascript 变量以供以后使用

Saving a Javascript variable for later usage?

本文关键字:变量 保存 Javascript      更新时间:2023-09-26

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

var a = b

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

如果您的意思是在 Web 浏览器中,有两个选项:

  • 饼干

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

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

设置 Cookie 很容易,但读取 Cookie 客户端却很痛苦。查看上面的 MDN 页面以获取示例。

所有主流现代浏览器(包括IE8及更高版本(都支持Web存储。该API比cookie要好得多。Web存储纯粹是客户端的,数据不会自动发送到服务器(当然,您可以自己发送(。

下面是使用 Web 存储的示例:实时复制

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

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

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

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

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

本地存储可能是简单的客户端存储数据值的最佳选择,该值没有服务器端原因在 Cookie 中。 您可以在此处阅读有关本地存储的信息。

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

自 IE8 以来,IE 一直支持本地存储。 如果您需要旧版本的IE支持,则可以使用cookie,也可以使用我之前链接的MDN页面上包含的本地存储填充程序。

您正在寻找的可能是如何制作和使用 Cookie。

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

你可以通过使用Modernizr lib来尝试HTML5本地存储。

例:

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