我在哪里可以在我的JS项目中存储大量“业务”数据/对象?

时间:2015-07-28 13:37:37

标签: javascript angularjs

我与AngularJs合作。我有一家工厂提供有关建筑物的服务。

我有很多建筑物(大约50-60),有很多属性和与它们相关的子属性(大约15-20,或多或少复杂)。 业务需求迫使我以JS格式存储有关建筑物的所有数据。

所以我创建了一个这样的对象:

var Buildings = {
        myFirstBuilding: {
            id: 1,
            name: 'Building 1',
            quantity: 0,
            costs: {
                myFirstCost: {
                    name : 'Cost 1',
                    value: 10,
                    isAvailable: 0
                },
                mySecondCost: {
                    name :  'Cost 2',
                    value: 20,
                    isAvailable: 0
                }
            },
            workersAvailable: 0,
            type: 'Type 1',
            /*
              other properties...
            */,
        mySecondBuilding: {
            id: 1,
            name: 'Building 2',
            quantity: 3,
            /*
              and so on...
            */

如果需要,我可以更新此对象的结构。唯一的要求是能够将其存储在用户的浏览器中,并在需要时将其存储为“JSON it”。

我应该将这个对象存储在我的项目中?我可以从工厂的外部文件中引用它吗?我应该直接将它包含在我的工厂吗?

您是否看到此对象中存在任何不一致的情况,因为它实际上是在上面的示例中做出的?

1 个答案:

答案 0 :(得分:4)

就我看来,你有3个选择:

  1. 如果您需要,请使用角度值或常量来存储数据 渲染它,不需要数据库搜索/过滤功能, 而且它足够小。
  2. 如果它很大,但不是很大,而且你不需要数据库 搜索/过滤,将其存储在本地存储中并使用角度服务进行读取。
  3. 如果它非常大和/或您需要数据库搜索/过滤器使用 浏览器上显示indexedDB。作为indexedDB的一些实现 很糟糕,你应该使用一个包装库,如 ydn-db