javascript - 页面刷新时如何保持变量的值
问题描述
我目前正在做一个学校项目,我必须重新制作一个“乒乓”类型的游戏。我刚刚开始编码,但到目前为止一切都很顺利。但是,我被这个得分问题困住了。我基本上想在刷新页面时保留变量的值。我的一些代码是法语的,因此是法语单词。“点”基本上是分数(两个球员所以两个不同的分数)。“Fin”是球员得分的时候。另外,尽量不要评判我的代码,这是我要做的第一件事:P。
由于我是编码界的菜鸟,所以我尝试了多种方法来在页面刷新时保持变量的值。我已经尝试过 cookie 和本地存储。
var point1=0
var point2=0
if(balle.x+balle.w>=canvas.width){
gameOver=true
player1=true
point1++
}
if(balle.x-balle.w<=0){
gameOver=true
player2=true
point2++
}
function fin1(){
c.font="100px Impact"
c.drawImage(sas,0,0)
c.fillText("Sasuke scores!",200,100)
}
function fin2(){
c.font="100px Impact"
c.drawImage(ita,200,0)
c.fillText("Itachi scores!",200,100)
}
function restart(){
if(gameOver==true){
setTimeout("window.location.reload(false)",2000);}
}
我的重启功能有效,但它只是在每次页面重新加载时重置“point1”和“point2”变量的值。
解决方案
啊,我看到这里发生了什么,至少我可以通过您的查询理解的是:您正在将数据设置到本地存储,但在重置时文件再次运行并将值和设置point1
为point2
0。基本上您没有从那里获取该项目本地存储。那么你问的解决方案是什么:编写一个 If 条件,如果数据存在于本地存储中,则使用它,如果没有,则初始化为 0类似这样的东西。
var point1 = localStorage.getItem('point1') ? localStorage.getItem('point1') : 0;
var point2 = localStorage.getItem('point2') ? localStorage.getItem('point2') : 0;
您可以从以下位置获得有关 localStorage 的更多信息:
注意:我正在考虑您将数据(point1 和 point2)存储在 localStorage
推荐阅读
- python - 如何为 AWS lambda 正确准备部署包
- go - 对多个预期查询使用相同的预期行仅返回带有 sqlmock 的第一个查询的结果
- ios - Swizzling UIImage.init(named:) 在获取实例方法时返回 nil
- heroku - Heroku 上的 1 个应用程序和 1 个工作人员需要多少个测功机?
- python - 如何从 OpenCV 的特征脸模型中获得“特征向量之间的距离”或“两张脸之间的相似度值”?蟒蛇语言
- python - 如何使用 gspread 缓存 Google 表格的授权?
- ruby-on-rails - 新 Rails 6 应用程序中巨大的 .yarn/ 文件夹是怎么回事?
- python - 如何从 python 中获取价值并使用 php 在网页中显示
- android - Android:将自定义状态传递给自定义布局内的子图像视图
- java - Spring Data Jpa OneToMany 同时保存子实体和父实体?