我使用了完整的日历时间轴视图。时间轴视图使用 setInterval(function(){refreshEvents();},30000)每30秒自动刷新一次;
对于刷新我使用 removeEvents 和 addEventSource 所以我需要在removeEvents之前得到timelineview的垂直滚动位置,并在addEventSource之后恢复滚动位置,因为每个刷新滚动位置都会丢失
那么如何在自动刷新事件
时恢复时间轴视图的滚动位置见下面的代码:
$('#divCalendar').fullCalendar({
resourceAreaWidth: 200,
allDaySlot: false,
timeFormat: 'HH:mm', // uppercase H for 24-hour clock
slotLabelFormat: 'HH:mm', // uppercase H for 24-hour clock
eventDurationEditable: false,
header: {
left: 'today prev,next',
center: 'title',
right: 'timelineDay',
},
views: {
timelineDay: {
type: 'timeline',
slotDuration: '00:02:00'
}
},
resources: function (callback) {
// necessary hack
var view = $('#divCalendar').fullCalendar('getView');
$.ajax({
url: '/Dispatcher/GetTimeLineDriverList',
dataType: 'json',
cache: false,
data: {
start: view.start.format(),
end: view.end.format()
}
}).then(function (resources) {
callback(resources);
});
},
events: {
url: '/Dispatcher/GetDriverTripSchedules'
},
});
function refreshEvents() {
var calenderDate = $('#divCalendar').fullCalendar('getDate').format("MM-DD-YYYY");
$.ajax({
url: '/Dispatcher/GetDriverTripSchedules',
success: function (response) {
$('#divCalendar').fullCalendar('removeEvents');
$('#divCalendar').fullCalendar("addEventSource", response);
}
});
}
setInterval(function () { refreshEvents(); }, 30000);