Javascript 对于基于浏览器的回合制棋盘游戏,如何使用对游戏的更改重新加载页面?

Javascript 对于基于浏览器的回合制棋盘游戏,如何使用对游戏的更改重新加载页面?,javascript,html,css,database,Javascript,Html,Css,Database,我是Javascript新手,作为练习,我正在做一个浏览器版的棋盘游戏 由于我对HTML世界是如此的陌生,我很想更多地了解像Boiteajeux.net这样的网站上的异步游戏是如何工作的 我可以在游戏中完成这些步骤(我已经编写了很多逻辑程序),但我不确定如何“保存”这些信息,这样当游戏再次加载时,更改的信息就会重新加载 我不太了解数据库以及如何存储它,所以这可能是我知识中的漏洞 我希望我的游戏中的每一个“移动”都能对网页进行永久性的更改,这样,如果我点击“刷新”,它就不会回到游戏前的状态 这是如

我是Javascript新手,作为练习,我正在做一个浏览器版的棋盘游戏

由于我对HTML世界是如此的陌生,我很想更多地了解像Boiteajeux.net这样的网站上的异步游戏是如何工作的

我可以在游戏中完成这些步骤(我已经编写了很多逻辑程序),但我不确定如何“保存”这些信息,这样当游戏再次加载时,更改的信息就会重新加载

我不太了解数据库以及如何存储它,所以这可能是我知识中的漏洞

我希望我的游戏中的每一个“移动”都能对网页进行永久性的更改,这样,如果我点击“刷新”,它就不会回到游戏前的状态


这是如何工作的?

如果您只想在刷新之间保持本地持久状态,可以考虑使用本地存储。LocalStorage是文档存储对象的只读属性。与会话存储不同,存储的数据不会过期

您可以在本地存储中设置关键项,如下所示:

localStorage.setItem('myKey','some data')

您可以如下方式读取存储的项目:

var myItem=localStorage.getItem('myKey')

还有用于删除项目和清除存储对象的
.remove('myKey')
.clear()
方法

假设游戏状态存储在某个状态对象中,则可以在状态更新时存储字符串化对象

比如:

localStorage.setItem('gameState',JSON.stringify(currentState))

并访问浏览器加载时的状态,如下所示:

var currentState=JSON.parse(localStorage.getItem('gameState')


这将比设置数据库容易得多,但如果您想从其他浏览器访问游戏状态,则可能需要使用数据库

你有很多选择,但还有很多研究摆在你面前。数据库在这方面很有意义。但在紧要关头,您可以编写某种JSON来确定移动位置和丢失的位置。或者如果事情只需要局部持续;localstorage或Cookies您已经发现客户端代码的最大弱点。信息只想在客户机上存在,并且只想在会话(浏览器窗口)运行时存在。@Doug这不是很准确。像localStorage和indexedDb这样的存储会一直保留在硬盘上,直到用户(或应用程序)清除为止。谢谢。在一个理想的世界里,我会把这个游戏发布到网上,在这种情况下,它肯定需要在各种浏览器上被所有异步玩家访问。当然,因为它是一个基于回合的游戏(我的错)。我建议您编写一个关于mongodb这样的非关系型数据库的教程,因为它们比mySql这样的关系型数据库更容易学习。基本流程如下:前端将在加载时从后端请求数据。后端将接收请求并从数据库获取数据,然后将其传递回前端。玩家移动后,您将向后端发送另一个包含玩家移动数据的请求,并更新数据库。我建议使用node.js和express作为后端,这样您就可以用javascript开发它了。谢谢您提供的详细信息,@Rowan!我很感谢你给我的时间和小费。