每分钟JSON文件解析和合并

时间:2014-05-02 15:01:05

标签: javascript json performance parsing dojo

我正在构建一个使用JSON数据将服务器统计信息呈现到HTML表中的系统。后端系统每分钟生成一个JSON文件,JSON文件包含大约10个不同服务器性能区域的信息。因此,每个JSON快照将包含每个表的一行的数据。

我想要生成的表格将显示过去15分钟的数据,表格将每分钟刷新一次以包含最新的分钟数据并丢弃最早的分钟数据,这样我们总能看到最后15分钟的统计数据。

我是JSON的新手,它的工作方式和执行方式以及整体最佳实践,所以我非常感谢有关如何做到这一点的任何建议。在从这些文件加载​​数据方面,我相信它们是我可以使用的三种方法。

  1. 创建一个中央Javascript对象,让我们称之为currentDataSet,它将加载最后15分钟JSON文件中的所有数据。即一个对象,它将保存15个JSON文件中的数据,每个文件包含10个表的数据。每分钟currentDataSet将被更新以忘记最早的分钟并包括最新分钟的数据。从currentDataSet开始,每个表渲染器函数将查找currentDataSet并为表生成产品。

  2. 每个表都是自己的!我还认为,不是有一个包含所有数据的中心对象,我也可以编写它,这样每个表格渲染器功能都可以获取它'自己的数据。这样,每个表都可以解析15个JSON文件并维护自己的数据。所以10个Javascript对象,如performanceByInstance,htmlStatus,databaseStatus,dynacacheStatistics等......

  3. 将JSON数据加载到某种数据库中,而不是依赖JSON解析和Javascript对象进行存储。

  4. 由于缺乏经验,我甚至没有考虑过一些方法。 : - )

  5. 我最关心的是加载15个JSON文件的性能一次性渲染,以后我希望系统能够从过去的日期/时间加载存档数据,因此需要快速渲染选择日期/时间时,所有这些数据都会显示在表格中。

    我还将使用Dojo来实现这一目标,因为这是我用来为此工具构建UI仪表板的方法。

    提前致谢。

2 个答案:

答案 0 :(得分:1)

我会选择#1,因为你真的没有从#2获得任何东西,而#3的可扩展性较差,这对你的情况可能有关,也可能没有关系。

然而,对于初始加载,我会将所有数据集"放在一起" (见下文)。 IMO,这减少了对最可能的失败点的使用和依赖。

将每个数据集存储为数组的一部分,因为对诸如Object之类的非索引数据类型进行排序是混乱且不直观的。在管理"及时性时,Array是一个巨大的帮助。数据集。

答案 1 :(得分:0)

你可以做一个道场"存储"对于每个表,因为只要你在json数组的每个对象中有一些可用作ID的东西,它们就会使管理和排序数据相对容易 http://dojotoolkit.org/reference-guide/1.9/dojo/store.html

[{
    idLikeProp:1,
    //........
},
{
    idLikeProp:2,
    //........
},
//..........
]
像这样使用它们可以让其他dojo组件像

一样轻松插入它

dGrid

http://dojofoundation.org/packages/dgrid/

gridX

http://oria.github.io/gridx/

这可以减轻您在显示表数据方面的生活(dGrid比gridX更轻量级)