是否可以通过JSON文件创建大型客户端Javascript对象数组?

是否可以通过JSON文件创建大型客户端Javascript对象数组?,javascript,json,object,optimization,graph,Javascript,Json,Object,Optimization,Graph,我有一个网站,其中包含显示员工活动记录的图表。数据有多个层次(即:地区->州->办公室->经理->员工->活动记录),每次单击图形时,它都会向下钻取一个层次,以显示更具体的信息。最高级别(区域)要求我将~1000个对象加载到数组中,最低级别为~500000个对象。我通过JSON格式的文本文件填充图形,使用: $.ajax({url:'data/jsondata.txt', dataType: 'json', success: function (data) { l

我有一个网站,其中包含显示员工活动记录的图表。数据有多个层次(即:地区->州->办公室->经理->员工->活动记录),每次单击图形时,它都会向下钻取一个层次,以显示更具体的信息。最高级别(区域)要求我将~1000个对象加载到数组中,最低级别为~500000个对象。我通过JSON格式的文本文件填充图形,使用:

$.ajax({url:'data/jsondata.txt', dataType: 'json',
        success: function (data) {
        largeArray = data.employeeRecords;
}
是否有其他方法可以在不影响响应时间/性能的情况下使用?我陷入了这样的想法:我必须预先加载所有的数据客户端,否则如果我需要在用户点击时获取数据,就会有延迟。如果有人能给我指出最佳实践,甚至解释什么是“太多”的客户端数据,我将不胜感激


仅供参考,我只能使用旧的web服务器,如果我想在服务器端做任何事情,我只能使用经典的ASP,否则它必须是客户端。谢谢大家!

如果您的服务器响应迅速

在这种情况下,您可能只需在用户单击时按需加载数据。服务器速度很快,所以为什么要费心尝试变得更智能而毫无收获呢

如果服务器很快,但速度不够快,则可以在绘制第一级时预加载下一级。例如,如果您刚刚在“office”级别渲染了图形,则在用户仍对屏幕更新作出反应时,悄悄地预加载“manager”下一级别的数据

如果服务器速度太慢,无法按需提供数据

在这种情况下,您可能需要准确地建模速度较慢的位置,并解决这个问题。这里有几件事在起作用,而你的问题并没有确切说明

  • 服务器查询数据库的速度慢吗?如果是,请修复它。客户端几乎无法解决这个问题
  • 服务器传输数据包的速度慢吗?更难修复,服务器是否足够大
  • 网络传输慢吗?嗯,需要发送更少的数据或让用户使用更快的带宽
  • 浏览器解包时间慢吗?(即在脚本绘制数据图表之前延迟解码数据)。更改数据的打包方式,或发送更少的数据,如数据块
  • 浏览器能处理500000个对象吗?您应该能够只监视您正在使用的浏览器的内存,并且对此有意见是/否。将真正依赖或以用户为目标浏览器/硬件

    您可能想看看这个问题,因为它显示了一种发送和处理数据的替代方法,我发现对于上面的步骤4,这种方法要快得多。当然,在500k对象上,您将无法再使用localStorage,但我一直在尝试下载数百万个数组元素,它工作正常。(仍然是WIP)我不使用jquery,所以也不确定它的可用性


    最佳实践?抱歉,无法回答这部分问题。

    如果您的服务器快速响应

    在这种情况下,您可能只需在用户单击时按需加载数据。服务器速度很快,所以为什么要费心尝试变得更智能而毫无收获呢

    如果服务器很快,但速度不够快,则可以在绘制第一级时预加载下一级。例如,如果您刚刚在“office”级别渲染了图形,则在用户仍对屏幕更新作出反应时,悄悄地预加载“manager”下一级别的数据

    如果服务器速度太慢,无法按需提供数据

    在这种情况下,您可能需要准确地建模速度较慢的位置,并解决这个问题。这里有几件事在起作用,而你的问题并没有确切说明

  • 服务器查询数据库的速度慢吗?如果是,请修复它。客户端几乎无法解决这个问题
  • 服务器传输数据包的速度慢吗?更难修复,服务器是否足够大
  • 网络传输慢吗?嗯,需要发送更少的数据或让用户使用更快的带宽
  • 浏览器解包时间慢吗?(即在脚本绘制数据图表之前延迟解码数据)。更改数据的打包方式,或发送更少的数据,如数据块
  • 浏览器能处理500000个对象吗?您应该能够只监视您正在使用的浏览器的内存,并且对此有意见是/否。将真正依赖或以用户为目标浏览器/硬件

    您可能想看看这个问题,因为它显示了一种发送和处理数据的替代方法,我发现对于上面的步骤4,这种方法要快得多。当然,在500k对象上,您将无法再使用localStorage,但我一直在尝试下载数百万个数组元素,它工作正常。(仍然是WIP)我不使用jquery,所以也不确定它的可用性


    最佳实践?抱歉,我无法回答这部分问题。

    单个记录的外观/内容是什么?一个字段,很多字段,嵌套数组?数据类型?姓名、地区、办公室、经理、员工编号、activitytype、startTimestamp、endTimestamp。这是一个记录的例子,其中没有嵌套任何内容。管理者询问每个人的详细信息(每天数百项活动,数百名员工)个人记录是什么样子/包含什么?一个字段,很多字段,嵌套数组?数据类型?姓名、地区、办公室、经理、员工编号、activitytype、startTimestamp、endTimestamp。这是一个记录的例子,其中没有嵌套任何内容。管理者要求每个人提供该级别的详细信息(每天数百项活动,数百名员工)