You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在jsGrid中批量插入多条数据 解决单条插入性能下降问题

jsGrid 批量数据插入优化方案

你当前使用的单条insertItem方法性能差的核心原因是:每次调用insertItem都会触发一次完整的DOM重渲染、数据校验以及行事件绑定操作,当插入数据量超过百级时,频繁的DOM操作会直接导致页面卡顿甚至崩溃。

以下是两种可行的批量插入实现方案:

方案1:全量数据替换(性能最优)

直接修改jsGrid绑定的数据源数组,仅触发一次全局渲染,是性能最高的批量插入方式:

// 1. 获取表格现有数据
const existingData = $("#jsGrid-vws").jsGrid("option", "data");
// 2. 拼接要插入的批量新数据,batchData为你准备好的多条数据数组
const updatedData = existingData.concat(batchData);
// 3. 一次性更新数据源,仅触发1次重渲染
$("#jsGrid-vws").jsGrid("option", "data", updatedData);

方案2:临时关闭自动渲染后批量插入

如果你需要保留insertItem的内置校验、插入回调等原生逻辑,可以先关闭自动渲染,批量插入完成后再手动触发一次渲染:

const grid = $("#jsGrid-vws");
// 关闭自动渲染,所有操作暂不更新DOM
grid.jsGrid("option", "rendering", false);
// 循环插入所有批量数据
for (const item of batchData) {
  grid.jsGrid("insertItem", item);
}
// 重新开启渲染,手动触发一次全局重绘
grid.jsGrid("option", "rendering", true);
grid.jsGrid("render");

额外性能优化建议

  • 单页展示数据量超过500条时,建议开启jsGrid分页功能,配置paging: true、pageSize等参数,避免一次性渲染大量DOM节点
  • 如果数据从服务端获取,优先做服务端分页,不要一次性拉取全量数据到前端
  • 批量插入前提前完成所有数据格式校验、字段补全等预处理,减少插入过程中的计算开销
  • 插入过程中可以临时关闭不需要的行事件(如hover高亮、行点击回调等),插入完成后再恢复,进一步提升渲染速度

内容的提问来源于stack exchange,提问作者이재원

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:06:02