在没有数据库的情况下,在 JavaScript 中存储和处理数据的最佳解决方案是什么?

What would be the best solution to store and work with data in JavaScript without a database?

好的,请允许我详细说明一下。我正在尝试构建一个用于视觉飞行计划的小型应用程序,以帮助进行计算。我正在使用 HTML/CSS/Javascript 来简化一些事情。有用于机场的对象,例如 waypoints 和飞机。您 select 一个机场作为您的出发地,另一个机场作为您的目的地,输入 waypoints 您将飞过的飞机并选择飞机,该应用程序使用坐标和飞机特征来计算航程。它还有几个步骤,但这是基本概念。
所以我想做的是将数据存储在一个单独的文件中,并在元素 selected 时只检索我需要的数据。我是初级水平,不知道是不是在做白日梦。 现在我所做的是创建一个包含所有机场的数组,另一个包含所有 waypoints,另一个包含飞机。函数从数组和 returns 对象中检索数据。但这似乎是在浪费内存。
我的另一个想法是使用 id(例如 airport/waypoint 代码)和返回对象 selected 来创建一个带有 switch 语句的函数。我这样做是为了磁偏差,使用坐标。
我想做一些我可以在以后更新的东西,但如果可能的话,结构要简单。 SQL 肯定会想到,但我正在考虑更本地化的东西。 LocalStorage 似乎也是一个想法,但每次加载浏览器时都必须初始化它,而且仍然会浪费内存

localStorage 是必经之路。 只需使用 localStorage.setItem('item', JSON.stringify(obj)) 保存您的对象,稍后使用 JSON.parse.

检索它

没有比在客户端本地保存数据更好的方法了。

这个问题是相对的,有些人甚至可以将其视为基于意见的问题。但是,我认为可以找到一个具体的答案来解释一些细节。

将其存储在应用程序中 (arrays/objects)

是的,这就是您现在正在做的事情,我知道这就是您认为浪费内存的事情。但是,根据你的情况,你不应该太在意。

无论如何,我建议您在数据不太大且不太可能更改时以这种方式保存数据。这可能不是您的最佳选择,因为您说过您假装将来更新数据。不仅仅是内存,还有可维护性

本地网络存储

如果上面的解决方案不适合您,可能这也不适合您。为什么?这很简单。在 localStorage 中存储数据的过程中,您需要在代码中以数组或对象的形式包含该数据。最后,您的应用程序 AND 中的数据将保存在本地网络存储中。没有多大意义,你不同意吗?

localStorage应该用于存储与用户相关的数据,离开页面后您将无法访问这些数据,除非您保存它。这种存储对于存储您在任何条件下都可以访问的数据来说不是一个好的选择。

使用 JSON 文件

如果您的数据不太可能经常更改,这可能是一个很好的解决方案。而且它也将满足您的期望,因为您可以仅在需要时从中请求数据。你应该考虑到你自己的情况,但是,从你所说的我可以理解的是,你的数据有时会发生变化并且有点大,使用 JSON 文件会很好如果您不想使用数据库


最后,即使对于静态(但有些大)数据,使用数据库也有几个优点。例如,您可以选择 SQLite,这是一个嵌入式数据库。但是,这是另一个问题的主题。

目前,由于您的数据有时会更改并且可能很长,使用 JSON 文件 看起来是“无数据库”中更合适的选项限制。