【问题标题】:FullCalendar - What level of events rendering performance should I expect?FullCalendar - 我应该期望什么级别的事件呈现性能?
【发布时间】:2011-08-22 11:07:14
【问题描述】:

我在 FullCalendar 中使用 $('#CalendarPlugin').fullCalendar('renderEvent', {} ); 在循环中被调用 100 次来呈现 100 个事件。

我在计算机上看到的浏览器性能(Core2 6600 @ 2.4GHz,4GB RAM)

  • Chrome:3 秒
  • 火狐:6 秒
  • IE9:6 秒

这是预期的性能水平吗?有没有更快的方法来加载和渲染事件?

将它们添加到 FullCalendar 后,可以在几个月之间移动并更快地重新渲染。这只是使用renderEvent 进行的初始加载,速度很慢。

【问题讨论】:

  • 是的,肯定使用服务器端 ajax 来获取事件——在过去的 10 年里,我有一个包含数十万个事件的数据库。我有一个复杂的提要,人们可以在其中选择他们想看的内容,但仍然 - 我最多不会显示每月超过 50 个事件的顶部!而且它很快。但是数据库和页面在同一个服务器上-不要拆分它们!

标签: javascript jquery performance browser fullcalendar


【解决方案1】:

思路是一次性获取某个时间段内的所有事件,看api

http://arshaw.com/fullcalendar/docs/event_data/events_array/

http://arshaw.com/fullcalendar/docs/event_data/events_json_feed/

http://arshaw.com/fullcalendar/docs/event_data/events_function/

最初加载它们后,您的性能会提高,因为默认情况下会缓存事件。

【讨论】:

    【解决方案2】:

    开发人员正在努力提高 1.4.4 版本的性能,但在循环中点击插件 100 次仍然很困难。

    您可以尝试提高性能的一种技术是使用addEventSource 中的对象,因为我相信它会等待并完全呈现:

     $("#calendar").fullCalendar("addEventSource", msg.items);
    

    【讨论】:

    • @Gary-Green 我已更改为创建包含 100 个事件的数组的代码,然后使用 addEventSource 分配它,我看到性能有了很大的提升。看起来这样的开销要少得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多