【发布时间】:2018-12-23 15:43:03
【问题描述】:
但是,我的游戏中有一个速度元素,每当您失败时,它都会刷新页面。 我不希望人们每次刷新页面时都必须不断重置他们的速度。 如何在页面刷新后保持变量不变?
谢谢
【问题讨论】:
-
作为一个简单的解决方案,您需要将变量保存到
LocalStorage,或者让他们创建一个帐户并保存数据服务器端,这样他们就无法更改它。这取决于数据的重要性。
标签: javascript html
但是,我的游戏中有一个速度元素,每当您失败时,它都会刷新页面。 我不希望人们每次刷新页面时都必须不断重置他们的速度。 如何在页面刷新后保持变量不变?
谢谢
【问题讨论】:
LocalStorage,或者让他们创建一个帐户并保存数据服务器端,这样他们就无法更改它。这取决于数据的重要性。
标签: javascript html
给你,这会成功的。只是不要直接通过变量设置速度,而是使用setSpeed 函数,该函数也会更新本地存储。
let speed = localStorage.getItem('speed') ? Number(localStorage.getItem('speed')) : 0; // or whatever your default speed is
function setSpeed(newSpeed) {
speed = newSpeed;
localStorage.setItem('speed', newSpeed);
}
另一个解决方案是使用get 和set 方法,这个更优雅,一旦你设置了速度,它会自动存储在localstage中。
(function() {
let _speed = localStorage.getItem('speed') ? Number(localStorage.getItem('speed')) : 0;
Object.defineProperty(this, 'speed', {
get: function() {
return _speed;
},
set: function(speed) {
_speed = speed;
localStorage.setItem('speed', speed)
return true;
}
});
})();
【讨论】: