Javascript 如何存储持久数据?
我正在制作一款以cookies(NOM NOM cookies,而不是网络浏览器cookies)为货币的游戏Javascript 如何存储持久数据?,javascript,Javascript,我正在制作一款以cookies(NOM NOM cookies,而不是网络浏览器cookies)为货币的游戏 var cookies = 0; function cookieClick(number){ cookies = cookies + number; document.getElementById("cookies").innerHTML = cookies; } 现在我需要保存cookies的数量,这样当用户刷新页面时,cookies的数量将保持不变 我该怎么做呢?看
var cookies = 0;
function cookieClick(number){
cookies = cookies + number;
document.getElementById("cookies").innerHTML = cookies;
}
现在我需要保存cookies的数量,这样当用户刷新页面时,cookies的数量将保持不变
我该怎么做呢?看来你的意思并不是我们这里所说的饼干。显然,您只需要存储一个名为
cookies
的计数器
您可以按照建议使用window.localStorage
function consumeCookies (n) {
var n = n ? n : 1;
var util = localStorage.getItem("util");
util = util ? util : "{}";
util = JSON.parse(util);
util.cookies = util.cookies ? util.cookies + n : n;
util = JSON.stringify(util);
return localStorage.setItem("util", util);
}
// For consuming 42 cookies ...
consumeCookies(42);
请注意,这里存储的是一整袋属性,而不仅仅是一个普通的(键、值)
。这可能是一个更好的设计选择,但这取决于你的品味
在同一名称空间中,您现在可以存储其他属性,例如播放器的名称:
function loadUtil () {
var util = localStorage.getItem("util");
util = util ? util : "{}";
util = JSON.parse(util);
return util;
}
function storeUtil (util) {
return localStorage.setItem("util", JSON.stringify(util));
}
function setName (name) {
var util = loadUtil();
util.name = name ? name : "Ulysses";
return storeUtil(util);
}
并在应用程序的其他部分轻松访问整个JSON
退房
虽然这可能有点过分,而且在这种情况下,另一个更好的选择可能是选择
存储
Web存储API的存储接口提供对特定域的会话存储或本地存储的访问,允许您添加、修改或删除存储的数据项
如果要操作域的会话存储,请调用Window.sessionStorage方法;如果要操作域的本地存储,请调用Window.localStorage
将cookies
的值存储在窗口中。localStorage
使其保留直到用户清除缓存,或窗口。sessionStorage
使其保留直到用户关闭浏览器窗口。然后更新页面加载上的值(如果存在)
()
你似乎对什么是饼干有一个基本的误解。在这里提问之前,您可能需要阅读一些教程。另外,请查看您的本地存储模型…无论您选择哪种方式,请注意,浏览器只能访问其自己的存储机制,您可能无法使用您的用户的文件系统。我正在制作空闲游戏,其中我使用Cookie作为货币,我试图找到一个功能来保存我的cookies,这样当我离开页面并返回时,我仍然可以拥有我离开时的cookies数量。是的,本地存储,但不知道它是如何工作的。我在某个网页上找到了它,但我没有理解它。@LasseHaslund LocalStorage基本上是窗口上的一个属性,它会持续存在,并且不会在用户每次导航时被清除(请参阅此处的文档:)
var cookies = 0;
if(localStorage.cookies) cookies = localStorage.getItem('cookies');
document.getElementById("cookies").innerHTML = cookies;
function cookieClick(number){
cookies = parseInt(cookies) + number;
document.getElementById("cookies").innerHTML = cookies;
localStorage.setItem('cookies', cookies);
}