当添加大量事件(数百个)时,我们在 DHTMLX 调度程序中发现了一个奇怪的问题。想象一下这些事件都在 1 月至 3 月的日期范围内。如果用户当前正在查看该日期范围,则添加事件的代码大约需要 15 秒才能运行。但是,如果用户正在查看,比如三月至五月,那么同一段代码会立即运行。不仅如此,在代码立即运行后,您可以立即滚动到 Jan-Mar 范围并查看所有 200 个事件;他们渲染不到一秒钟。
我们认为问题一定是在添加每个事件后由调度程序完成的完全重绘。目前,我们已经添加了一种解决方法,即我们将用户查看的日期更改为遥远的未来,添加所有事件,然后将其日期更改回原来的日期。然而,这似乎是一个 hack,我们宁愿有一个像“scheduler.config.suppress_repaint”这样的选项,我们可以在添加事件时将其设置为“true”。
这样的事情存在吗?我们无法在调度程序文档中找到任何提及此类事情的内容。非常感谢任何帮助。
编辑:根据下面的评论,此问题已通过在官方 DHTMLX 论坛上发布来解决,从而产生了解决该问题的补丁,该补丁随后被合并到下一个官方版本中。请参阅此处的讨论:https ://forum.dhtmlx.com/t/performance-when-adding-large-number-of-events-via-backbone/30367