加载日历事件非常缓慢,任何方式来优化? [英] very slow loading calendar events, any way to optimize?

查看:699
本文介绍了加载日历事件非常缓慢,任何方式来优化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个成功运行的日历,但加载时间非常缓慢。每个事件都已成功呈现,但用户必须等待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:我的测试活动,开始:星期三,2011年11月02日13:00:00,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,今天下一'
},
eventRender:function(event,element){
va r 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: {
名称:'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,
周末:false
},
true //使事件贴
);
}
calendar.fullCalendar('unselect');
},
editable:true
});

});

< / script>


解决方案

总结评论:



不要发送来自Feed的所有事件,而只发送 start end 之间发生的所有事件,这些参数是由fullCalendar发送给喂页。这些在中以unix时间戳的形式发送。

I have a calendar that is working successfully, but the load times are very slow. Each event is rendered successfully, but the user has to wait a good 5-10 seconds when switching views or navigating through the months/weeks/days.

I have shown the event loading code below, is there anything I can do to it to make it load faster?

Thanks

<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>

解决方案

To summarize the comments:

Don't send all events from the feed but only the ones that occurs between start and end which are parameters sent by fullCalendar to the feed-page. These are sent as unix timestamps in seconds.

这篇关于加载日历事件非常缓慢,任何方式来优化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆