谢谢Biesior对你有帮助的答案。我能够使用您的建议代码来获得我正在寻找的行为。
使用上面的方法时,我注意到Firebug的控制台显示两个AJAX数据请求同时执行,一个用于与当前日期相关的视图,另一个用于与指定的gotoDate关联的视图。
从用户的角度看,没有任何额外的延迟,并且日历从头开始显示请求的视图。然而,'加载'回调会被多次调用,这在某些情况下可能会导致奇怪的行为。也可能存在与当前日期的多余AJAX请求相关的其他不期望的结果。
我能够通过初始化没有事件源的日历,然后移动到如上面Biesior所示的所需日期,然后添加事件源来避免不必要的AJAX请求。序列如下所示。 我已经删除了一些无关的FullCalendar选项和回调以保持简洁。还有一些额外的AJAX参数和一些PHP,但需要注意的是事件源的指定时间。
原始代码导致两个同时发生的AJAX请求:
$('#calendar').fullCalendar({
events: {
url:'/Services/GetEvents.php',
type: 'POST',
data: {
lat: <?=$venLatitude?>,
lon: <?=$venLongitude?>,
userID: <?=$userID?>,
distance: <?=$distance?>
}
}
})
$('#calendar').fullCalendar('gotoDate', <?=(int)substr($startDate,0,4)?>, <?=((int)substr($startDate,5,2))-1?>);
这种调整的结果只有所需AJAX请求:
$('#calendar').fullCalendar();
$('#calendar').fullCalendar('gotoDate', <?=(int)substr($startDate,0,4)?>, <?=((int)substr($startDate,5,2))-1?>);
$('#calendar').fullCalendar('addEventSource', {
url:'/Services/GetEvents.php',
type: 'POST',
data: {
lat: <?=$venLatitude?>,
lon: <?=$venLongitude?>,
userID: <?=$userID?>,
distance: <?=$distance?>
}
});
谢谢,这真是棒极了。 – 2012-03-31 15:05:03
我知道,这是我正在处理的代码的片段;]接受答案。 – biesior 2012-03-31 15:28:06
我会给你一个+1,因为他从来没有接受过答案。 – Rohrbs 2013-01-18 18:19:37