Javascript 使用本地存储和it制作排行榜';这不是储蓄

Javascript 使用本地存储和it制作排行榜';这不是储蓄,javascript,timer,local-storage,Javascript,Timer,Local Storage,我正在开发一个记忆游戏web应用程序,我正在尝试使用表格创建排行榜,下面是代码的样子: function scoreLeaderboard() { let name = prompt('What is your name?'); localStorage.setItem('name', name) localStorage.setItem('score', cardsWon.length); addToLeaderboard(); } function addToLeaderb

我正在开发一个记忆游戏web应用程序,我正在尝试使用表格创建排行榜,下面是代码的样子:

function scoreLeaderboard() {
  let name = prompt('What is your name?');
  localStorage.setItem('name', name)
  localStorage.setItem('score', cardsWon.length);
  addToLeaderboard();
}

function addToLeaderboard() {
  leaderboard.innerHTML = `<li>${localStorage.getItem('name')} - ${localStorage.getItem('score')}`
  console.log(localStorage);
}
功能评分排行榜(){
让name=prompt('你叫什么名字?');
localStorage.setItem('name',name)
localStorage.setItem('score',cardsWon.length);
addtoleadboard();
}
函数addToLeadboard(){
leadboard.innerHTML=`
  • ${localStorage.getItem('name')}-${localStorage.getItem('score')}` log(本地存储); }

  • 现在的问题是,当我重新加载页面时,分数消失,本地存储被擦除,我该如何修复?另外,我想让它按顺序显示结果(从最多的点到最少的点),我也有兴趣这样做,这样你就可以更快地完成它获得额外的点,但我真的不知道如何做到这一点。

    这可以通过
    window.localStorage
    window.sessionStorage
    实现。不同之处在于,
    sessionStorage
    只要浏览器保持打开状态,就会持续使用,
    localStorage
    在浏览器重新启动后仍然有效。持久性应用于整个网站,而不仅仅是其中的一个页面

    浏览一下这些链接:(如果这段代码有问题,你会在这些链接中找到答案,但可能是另一部分影响了这个问题。)

    浏览器存储-

    localStorage-

    关于信息的持久性。。。 在
    scoreLeadboard
    功能中,您正在覆盖以前注册的任何信息,因为正在设置键“name”和“score”,因此您可以尝试一些动态键命名,如
    'name'+index
    ,其中
    index
    是在新游戏完成时动态更改的任何值

    关于结果的顺序。。。 在显示信息之前,您可以将localStorage API检索到的所有键放入数组中,按照您喜欢的方式进行排序,或者手动循环,或者使用
    loop()
    like方法,然后将分数与名称关联起来

    关于快速完成奖金。。。 你可以得到一个变量,它随玩家开始玩游戏的时间而变化

    let startTime = Date.now();
    
    然后,当玩家完成游戏时,再做同样的动作

    let startTime = Date.now();
    
    然后你可以减去它并检查它是否在你想要的规则之内,比如如果它在30秒内完成,就奖励玩家X分

    if((startTime-finishTime) < 30000){ 
    //Gives him X points 
    }
    
    if((开始时间完成时间)<30000){
    //给他X分
    }
    
    你能提供一个更完整的例子来说明这个问题吗?当前,加载页面时,此代码不执行任何操作。你完全有可能有其他代码正在删除或覆盖你的值。我使用名称提示来询问名称,这不起作用吗?我想这不是问题本身。但请记住,当您执行localStorage.setItem('name',name)时,您将信息放入名为“name”的“变量”中,因此每次调用此行时,您都会覆盖localStorage上相同空间中的值