Спасибо Biesior за ваш полезный ответ. Я смог использовать предложенный вами код, чтобы получить поведение, которое я искал.
При использовании подхода, описанного выше, я заметил, что консоль Firebug отображает два запроса данных AJAX, выполняемых одновременно, один для представления, связанного с текущей датой, и один для представления, связанного с указанным gotoDate.
С точки зрения пользователя не возникает никаких дополнительных задержек, и календарь отображает запрошенное представление с самого начала. Однако обратные вызовы «loading» будут вызываться несколько раз, что может вызвать странное поведение в определенных обстоятельствах. Также могут быть и другие нежелательные результаты, связанные с лишним запросом AJAX на текущую дату.
Мне удалось избежать ненужного запроса AJAX, инициализировав календарь без источника события, затем переместившись на нужную дату, как показано выше в Biesior, и затем добавив источник события. Последовательность показана ниже. Я удалил некоторые несвязанные параметры и обратные вызовы 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?>
}
});