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