首先发布到StackOverflow,虽然我已经在这里找到了几年的好建议。希望通过动手解决一个棘手的问题。
我有一个应用程序,它提供了一个带有多个列的handontable实例,其内容/格式取决于另一列中单元格中的值。我通过数据库查询和服务器端处理确定依赖单元格的内容和格式,其结果被发送回handontable以便在afterChange函数中进行处理。
我的问题是,每当用户更新表中的一个单元格时,所有单元格都会闪烁,而代码会费力地重新考虑表格中所有单元格的格式。优选的行为是仅更新格式化已改变的单元格,即,依赖于在第一单元格中改变的值的小集合。只有这些依赖单元格的内容才会被改变。为什么要重绘WHOLE表?
我在这里和其他地方进行了搜索和搜索,最接近我能找到的答案是这是表格的预期行为。我不同意......当表格大于10行时,更新过程非常缓慢并且会分散用户注意力。
有什么建议吗?我愿意直接编辑handontable js代码,但是如果可能的话,我更愿意翻转一些我不知道的标志。
全部谢谢!
答案 0 :(得分:0)
afterChange仅为刚刚更新的单元格(documentation example)触发一次 你的问题可能来自afterChange“连锁反应”。第一个afterChange修改一个或多个相关单元格,在更改后触发其他单元格,依此类推。如果这是问题所在,您可以在源参数上添加过滤器。
另一种解决方案可能是处理数据副本以进行更新(请参阅data binding),一旦一切正常,请使用loadData将其注入桌面,并忽略afterChange回调中的loadData源。
最后,如果您仍然遇到一些性能问题,可以查看performance tips,并删除任何可能会降低表格速度的选项(example with columnSorting)
(抱歉,我无法使用评论来准确识别您的问题所在......)