Tôi đã tự hỏi liệu có ai đó có thể cho tôi một số gợi ý để giúp tối ưu hóa Mã Đầy đủ Lịch jQuery của tôi không. Vấn đề tôi đang gặp phải là khi tôi tìm nạp rất nhiều sự kiện thông qua AJAX (> 25), các quầy trình duyệt và trở nên không phản hồi thường dẫn đến thông báo cho người dùng hủy bỏ tập lệnh. Tôi đang cố gắng để tránh lỗi này, và tôi đã tự hỏi nếu có một cái gì đó tôi có thể làm trong chức năng của tôi để cải thiện thời gian tải.jQuery FullCalendar Tìm nạp Tối ưu hóa Sự kiện
Dưới đây là một bản sao của hàm Tôi đang chạy:
//Load the Business Unit Calendar Events
function ajaxBUEvents(start, end){
//Loop through the selected checked calendars
$(selectBUCalendars()).each(function(i, cal){
$.ajax({
type: 'POST',
data: {'startDate': start, 'endDate': end, 'buCals[]': cal},
url: '<?= site_url('AJAX/calendar_ajax/get_cal_events'); ?>',
dataType: 'json',
async: false,
beforeSend: function(){
$('#loading-dialog').dialog({minHeight: 100, width: 250}).dialog('open');
$('#loading-dialog p').text('Loading '+cal+' Calendar Events');
},
success: function(calevents){
$.each(calevents, function(i, calevent){
$('#calendar').fullCalendar('renderEvent', calevent, true);
});
}
});
});
$('#loading-dialog').dialog('close');
}
Và đây là một mẫu của các JSON được trả về, đây chỉ là một sự kiện. Đôi khi có thể có hơn 50 sự kiện được trả lại:
[{"id":4377,"title":"BWR - Lighting Affiliates Dinner - Actualized","start":1259874000,"end":1259888400,"className":"BWR Actualized","allDay":false,"editable":false}]
Cảm ơn sự giúp đỡ!
OMG, có ý nghĩa hoàn hảo! Tôi hoàn toàn bỏ qua chức năng đó, và tôi không có ý tưởng rằng renderEvent viết lại lịch mỗi lần. Điều này thật tuyệt, tôi không thể chờ đợi để thử điều này vào ngày mai tại nơi làm việc. Cảm ơn bạn rất nhiều về các trang demo và phần giải thích! – whobutsb
BTW JSBIN rất ngọt ngào! Tôi không thể chờ đợi để sử dụng điều này một số chi tiết. – whobutsb
Vì vậy, tôi vừa mới triển khai addEventSource, và nó đã cải thiện đáng kể hiệu suất của lịch vô cùng. Vấn đề duy nhất tôi đang chạy vào bây giờ là nó thêm một sự kiện trùng lặp cho mỗi sự kiện được trả về. Vì vậy, nếu 3 sự kiện được trả về, có 6 sự kiện trên màn hình. – whobutsb