寻找最合适的方式在Javascript中存储数据

时间:2019-05-28 16:13:59

标签: javascript list storage

我正在尝试用Javascript存储“已经准备好”的数据,但是我找不到最合适的方法来实现这一点。

我的确切需求是:我正在创建一个小游戏来练习Javascript,因为在接下来的几个月中我将不得不做很多工作。 游戏是玩家经历的一种地牢,带有随机的“阶段”:从列表中选择的随机怪物将在每个阶段中生成。

我正在尝试存储这些怪物及其统计信息,但是我不知道什么是最合适的方法。我是一名前PHP开发人员,我很想使用MySQL数据库,但似乎在JS中实际上是不可能的,因为它将是在每台运行它的计算机上“本地”运行的游戏。 我曾考虑过使用对象,但我真的不知道这是一个好主意。他们将是一个“怪物”类,但是如果其中一个需要一些额外的属性,我将不得不创建一个子类,这将破坏与其他怪物的兼容性。

为什么要存储这些怪物?我之前尝试用PHP进行相同的游戏,然后我首先直接在代码中编写了怪兽。维护起来很快变得可怕,因为他们的代码超过了专用于此代码的一半。最好将所有这些数据都放在一个集中的位置,例如数据库或文件中。

总而言之,我需要一种存储数据的方法:

-无需服务器即可使用Javascript访问(它将在用户的浏览器中)

-使用起来不太复杂,或者需要大量的代码行

那么,有人有个好主意吗?

2 个答案:

答案 0 :(得分:1)

这取决于。关于您的应用程序将增长多少,您可能需要更改整个结构。

您可以将数据存储到coxph(Surv(time, status) ~ drugName:strata(preventative), data = df) 或仅将全局变量存储到localStorage

https://www.w3schools.com/jsref/prop_win_localstorage.asp

但是我认为更重要的是您想要处理这些数据。

例如,您可能希望将数据作为标志来更改应用程序的状态,并且希望您的应用程序对该变量的更改做出反应,因此您应该为其放置侦听器。

或者您可能想要搜索数据,使用它们来呈现某些东西。

在简单的情况下,您可以使用大对象,例如:

window.Mdata

在更高级的情况下,您可能需要管理应用程序的状态。尝试阅读有关reduxreactreact-redux

的信息

答案 1 :(得分:0)

我当时想这是在nodeJS中,而不是在浏览器中。

我认为这里更简单的解决方案是将所有数据存储在内存中(基本上是一个包含所有数据的大对象),并将该对象保留为pur数据(因此没有方法)

示例:

{
    player:{
        life:20,
        strength:5
        ...
    }
    foes:[...],
    dungeonCells:[...]
}

然后您可以在程序退出时将该对象存储为JSON,并在启动时进行检索。

这是最快,简单,兼容的方式。

困难来自数据格式,如果要复杂的话,访问它也将是复杂的。 分割文件可以提供帮助,并且可以巧妙地管理数据。

您还可以对代码进行专门的处理,以将数据结构转换为文件格式,然后返回...

如果此解决方案还不够,那么嵌入式DB将是下一个解决方案。