Com*_*mms 2 javascript persistence
我想知道是否有办法将一个或多个javascript变量保存到本地计算机,然后再调用它们?
var a = b
Run Code Online (Sandbox Code Playgroud)
然后当你回到网页时它会记住B的值吗?
如果您的意思是在Web浏览器中,有两个选项:
浏览器普遍支持Cookie,但用户可以将其关闭.JavaScript中的API非常非常糟糕.Cookie也会被发送到您的服务器,因此它们会增加对服务器的请求大小,但可以在客户端和服务器端使用.
设置 cookie很容易,但阅读cookie客户端是一件痛苦的事.请查看上面的MDN页面以获取示例.
所有主要的现代浏览器(包括IE8及更高版本)都支持 Web存储.API比cookie好得多.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>
Run Code Online (Sandbox Code Playgroud)
您可以使用三个选项来存储状态,稍后您可以在同一域的另一个网页中检索这些状态:
将数据保存在 cookie 中,然后在以后的网页中,从 cookie 中检索数据。
将数据保存在用户浏览器的本地存储中,然后在以后的网页中从本地存储中检索数据。
以某种方式保存服务器端的数据(通过 post 或 ajax 调用),然后让服务器将其放回页面的下一次调用中,或者通过 ajax 调用从服务器请求它。
对于在 cookie 中没有服务器端原因的简单客户端存储数据值,本地存储可能是最佳选择。您可以在此处阅读有关本地存储的信息。
// save data value
localStorage.setItem("name", "John");
// retrieve data value
var name = localStorage.getItem("name");
Run Code Online (Sandbox Code Playgroud)
IE8 开始支持本地存储。如果您需要旧版本 IE 的支持,您可以使用 cookie 代替或使用我之前链接的 MDN 页面中包含的本地存储垫片。
| 归档时间: |
|
| 查看次数: |
25679 次 |
| 最近记录: |