循环通过大javascript多维数组

时间:2016-03-28 04:56:00

标签: javascript arrays json multidimensional-array

我想在我的页面中显示一个大的json数据(大约20k +(2mb +))

因此,我使用ajax获取该数据并使用javascript中的JSON.parse进行解析,它将成为一个大型的多维数组。然后,我用一些过滤器用defiantjs(js lib for json)搜索一些值。然后,我使用for循环在表格中显示它们。但是,它总是说页面没有响应(可能是因为大数据)。

这是某种销售报告。

所以,问题是,有没有办法更快地做到这一点,没有for循环,这样它不会每次都崩溃? 或者由于性能不同,我是否必须使用foreach?

[编辑]

所以,每天晚上,我将我的应用程序的销售数据转移到json(平均每天100多个数据)。现在,我想根据json数据制作销售报告。管理员将设置日期范围(可能是1个月或2个月等)。而且每天都有这么多数据。

数据样本:(在一个月内,大约有2k +数据具有相同的格式)

{
"nojual": "1-00043",
"tgl": 1452038400,
"pelanggan_id": "guest",
"tgltempo": "0000-00-00",
"pay": "cash",
"sales_id": "",
"sisa": "0",
"po": "V5",
"iduser": "riny",
"modedisc": "P",
"total_qty": "4",
"kas": "o",
"sync": "N",
"last_update": "2016-01-06 12:30:54",
"nofaktur": "19",
"service_charge": "0",
"mode_service_charge": "P",
"pb2": "0",
"detail_pay": "",
"diskon_detail_pay": "0",
"tipe_diskon_detail_pay": "",
"ket_diskon": "",
"subtotal": "120000",
"disc": "0",
"pajak": "10",
"grandtotal": "132000",
"nojd": "89",
"barang_id": "20",
"jlhbrg": "2",
"hrgjual": "15000",
"reture": "0",
"tjddisc": "0",
"expired": "0000-00-00",
"total": "30000",
"tjdiduser": "riny",
"tjdmodedisc": null,
"qty": "0",
"satuan": "",
"gudang_id": "",
"id_option": "",
"sp": "tawar",
"tjdsync": "N",
"tjdlast_update": "2016-01-06 12:30:54",
"waiters": "astuti",
"nama_barang": "ice tea",
"jenis": "Minuman"
 }

2 个答案:

答案 0 :(得分:0)

我强烈建议您修改架构,以便将数据加载到片段中,而不是将所有内容作为一个大型列表加载。每个块是否有五行或一百行取决于您,但它肯定会使您的页面响应更快,并减少负载和渲染时间。

您可以通过添加prevnext链接以及一些页码链接(例如1, 2, ..., 5)来轻松实现此目的,以帮助用户跳转到特定部分。如果您正在寻求减少页面请求,请在寻呼机链接上添加Javascript侦听器,以便他们使用AJAX加载行,而不是完整的传统页面加载。

或者,如果您希望最大限度地减少点击次数,可以在滚动时添加Javascript个侦听器,然后使用AJAX来请求其他行。这通常称为infinite scrolling

答案 1 :(得分:0)

如果您要显示为具有分页或无限滚动的网格,您可以考虑https://www.ag-grid.com/example.php这对于大量数据来说非常好。

我希望这可以帮到你。