我想在我的页面中显示一个大的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"
}
答案 0 :(得分:0)
我强烈建议您修改架构,以便将数据加载到片段中,而不是将所有内容作为一个大型列表加载。每个块是否有五行或一百行取决于您,但它肯定会使您的页面响应更快,并减少负载和渲染时间。
您可以通过添加prev
和next
链接以及一些页码链接(例如1, 2, ..., 5
)来轻松实现此目的,以帮助用户跳转到特定部分。如果您正在寻求减少页面请求,请在寻呼机链接上添加Javascript
侦听器,以便他们使用AJAX加载行,而不是完整的传统页面加载。
或者,如果您希望最大限度地减少点击次数,可以在滚动时添加Javascript
个侦听器,然后使用AJAX来请求其他行。这通常称为infinite scrolling
。
答案 1 :(得分:0)
如果您要显示为具有分页或无限滚动的网格,您可以考虑https://www.ag-grid.com/example.php这对于大量数据来说非常好。
我希望这可以帮到你。