gpt4 book ai didi

javascript - 在 DHTMLX Scheduler 中添加大量事件时的性能

转载 作者:行者123 更新时间:2023-12-02 17:34:01 25 4
gpt4 key购买 nike

当添加大量事件(数百个)时,我们在 DHTMLX Scheduler 中发现了一个奇怪的问题。想象一下这些事件都在一月至三月的日期范围内。如果用户当前正在查看该日期范围,则添加事件的代码大约需要 15 秒才能运行。然而,如果用户正在查看,比如说,三月到五月,那么同一部分代码会立即运行。不仅如此,代码立即运行后,您可以立即滚动到 1 月到 3 月范围并查看所有 200 个事件;他们的渲染时间不到一秒。

我们认为问题一定是添加每个事件后调度程序完成的完全重绘。目前,我们添加了解决方法,将用户 View 的日期更改为遥远的将来的日期,添加所有事件,然后将其日期更改回他们所拥有的日期。然而,这看起来像是一个黑客行为,我们宁愿有一个像“scheduler.config.suppress_repaint”这样的选项,我们可以在添加事件时将其设置为“true”。

有这样的事情存在吗?我们在 Scheduler 文档中找不到任何关于此类事情的提及。非常感谢任何帮助。

<小时/>

编辑:根据下面的评论,这个问题通过在官方 DHTMLX 论坛上发帖得到解决,从而产生了一个解决该问题的补丁,该补丁随后被合并到下一个正式版本中。请参阅此处的讨论:https://forum.dhtmlx.com/t/performance-when-adding-large-number-of-events-via-backbone/30367

最佳答案

要一次添加大量事件,可以使用scheduler.parse而不是scheduler.addEvent

此代码将在添加每个事件后重新绘制调度程序

//slow
for (var i=1; i<100; i++)
scheduler.addEvent({ id:i });

这个只会重绘调度程序一次

//fast
var data = [];
for (var i=1; i<100; i++)
data.push({ id:i });
scheduler.parse(data, "json");

关于javascript - 在 DHTMLX Scheduler 中添加大量事件时的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22794025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com