【发布时间】:2017-05-17 14:39:55
【问题描述】:
到目前为止我一直在使用
.fullCalendar("renderEvent",event,true)
逐个渲染每个事件,这在性能方面有点糟糕,添加 50 个事件时加载时间超过 10 秒。然后我在stackoverflow上查看了一个建议使用
的线程.fullCalendar("addEventSource", events) // events is an array of events to be added.
这大大提高了性能,但我想知道是否可以进一步改进?我查看了 FullCalendar 文档,发现了这个函数 renderEvents (https://fullcalendar.io/docs/event_rendering/renderEvents/),但对我来说,它不会在日历上呈现事件。它是在最新版本 3.1 中添加的,所以它可能仍然存在错误?在纸面上,它应该更好地提高性能,因为它需要一个事件数组,而不是必须为每个事件调用 renderEvent。
我还优化了代码,因此我只对数据库进行了 1 次 ajax 调用,所有事件都编码为单个 json 字符串。
任何人对如何提高渲染事件的速度有经验?
编辑:
对于.fullCalendar("renderEvents",events,true),我输入了像events[i].id = _id 这样的事件的ID,并且renderEvents 调用有效:) 以防这对任何人都有用
【问题讨论】:
-
为感兴趣的人编辑零件解决方案
-
另外,在后端性能方面要小心,这也是我遇到的大多数使用 Fullcalendar 的应用程序的瓶颈。这可能很明显,但想提一下有些人返回所有数据源,即数据库字段(示例 20+),并且只使用返回的 JSON 有效负载中的 3-5 个字段。仅返回日历消耗的字段值也将加快 JSON 的客户端浏览器在消耗之前所需的检索/内存。预先格式化数据值中的值,而不是在客户端中单步执行事件。
标签: javascript json performance fullcalendar