Fullcalendar 加载日历事件非常慢,有没有优化的方法?

Fullcalendar 加载日历事件非常慢,有没有优化的方法?,fullcalendar,Fullcalendar,我有一个日历正在成功运行,但加载时间非常慢。每个事件都会成功呈现,但用户在切换视图或浏览月/周/日时必须等待5-10秒 我已经在下面展示了事件加载代码,我可以对它做些什么来加快加载速度吗 谢谢 <script type='text/javascript'> $(document).ready(function () { var date = new Date(); var d = date.getDate(); var m = date.getMonth(

我有一个日历正在成功运行,但加载时间非常慢。每个事件都会成功呈现,但用户在切换视图或浏览月/周/日时必须等待5-10秒

我已经在下面展示了事件加载代码,我可以对它做些什么来加快加载速度吗

谢谢

<script type='text/javascript'>

$(document).ready(function () {

    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();

    var calendar = $('#calendar').fullCalendar({
        //events: [{"title":"My Test Event","start":"Wed, 02 Nov 2011 13:00:00 EST","url":"http://edu","allDay":"false"}],

        events: "JSONcalendarFeed.aspx",

        defaultView: 'month',
        weekends: false,
        allDay: false,
        minTime: 8,
        maxTime: 19,
        allDaySlot: false,
        slotMinutes: 15,
        weekMode: 'liquid',
        defaultEventMinutes: 60,
        firstHour: 8,
        header: {
            left: 'month,agendaWeek,agendaDay',
            center: 'title',
            right: 'prev,next today'
        },
        eventRender: function (event, element) {
            var evtDesc = event.description;
            var evtStart = event.start;
            var evtEnd = event.end;
            if (evtDesc || evtStart) {
                element.qtip(
                    {
                        content: evtStart + ' - ' + evtEnd + '<br/>' + evtDesc,
                        position: {
                            corner: {
                                target: 'bottomMiddle',
                                tooltip: 'topMiddle'
                            }
                        },
                        style: {
                            name: 'light'
                        }
                    }
                );
            }
        },
        selectable: true,
        selectHelper: true,
        select: function (start, end, allDay) {
            var title = prompt('Event Title:');
            if (title) {
                calendar.fullCalendar('renderEvent',
                    {
                        title: title,
                        start: start,
                        end: end,
                        allDay: false,
                        weekends: false
                    },
                    true // make the event "stick"
                );
            }
            calendar.fullCalendar('unselect');
        },
        editable: true
    });

});

</script>

总结评论意见:


不要从提要发送所有事件,只发送在开始和结束之间发生的事件,这些事件是fullCalendar发送到提要页面的参数。这些以秒为单位作为unix时间戳发送

我看不出任何明显的错误,您的JSONcalendarFeed.aspx看起来如何?在使用静态事件取消对行的注释时,您是否会得到相同的行为?您可以尝试读取fullCalendar发送的开始和结束参数,以便仅从提要发送这些日期之间的事件,以减少加载时间。我真的不记得为什么了,但出于某种原因,我把我的懒散设置为false。试过了吗?正如我前面所说的,在您发布的代码中看不到任何错误。fullCalendar已经完成了这项工作。。检查开始和结束参数,因为unix时间戳(以秒为单位)随每个事件请求一起发送。每次更改视图或浏览月份时,fullCalendar都会自动获取事件。您应该只发送在显示时间内发生的事件。是的。这就是为什么您需要读取开始和结束参数的原因。我认为时间戳是以毫秒的形式发送的,并在给定范围前一天和后一天获取数据,这实际上是前1000天和后1000天!它通过了b/c测试,我们的测试数据样本不够大。哎呀,哈哈。我也犯了同样的错误,但是没有炸掉任何东西。这就是为什么我总是在第二部分加粗=嗨,你能再详细说明一下吗?也许可以举个例子?