所以我有一个GitHub页面,上面有一个游戏,我想用localStorage来存储用户的分数。然而,这给脚本带来了一些问题,因为游戏不再工作了,应该打印在屏幕上的东西没有打印出来(使用document.write)。这是我添加的代码。
if (localStorage.getItem("highscore") !=== null) {
document.write("Your highscore is " + localStorage.getItem("highscore"));
}
else {
document.write("Play the game to set a highscore");
}
//game code
if (testhighscore && localStorage.getItem("highscore") > myGameArea.frameNo) {
localStorage.setItem("highscore", myGameArea.frameNo)
document.write("Your highscore is now " + localStorage.getItem("highscore"))
}
我如何(如果可能的话)修复这个问题,为什么会发生这种情况?
你有没有试过用sessionStorage来代替?我的应用程序在本地工作,但一旦部署到github页面,当我使用localStorage时,它就会崩溃。我的问题是在测试过程中,之前的会话中的一个值被从存储中持久化到应用程序中。使用localStorage隐藏了我代码中的一个bug,在切换到sessionStorage并修正我的逻辑后,我得以修复。
从形式上看,两者的区别是
sessionStorage为每一个给定的原点维护一个单独的存储区域,在页面会话期间(只要浏览器打开,包括页面重载和恢复)都是可用的。
localStorage做同样的事情,但即使浏览器关闭和重新打开也会持续存在。MDN