Проблема:
fullCalendar не обновляет события с помощью .fullCalendar('refetchEvents')
после успешного вызова AJAX.
Использование
- MSIE 11.0.41 (11.0.9600.18638) -- возникает проблема
- FireFox 53.0 (32-разрядная версия) — проблема не возникает
- Chrome 58.0.3029.81 (64-разрядная версия) — проблема не возникает
- VS2015, C# MVC на локальном хосте, IIS Express
- полный календарь.js v3.3.0
- jquery-3.1.1.js
- jquery-ui-1.12.1.js
Описание симптомов:
При вставке нового события в fullCalendar с помощью нижеприведенного вызова $.ajax
$.ajax({
type: 'POST',
url: '@Url.Action("SaveEvent","Calendar")',
data: dataRow,
success: function (response) {
if (response == 'True') {
$('#_Calendar').fullCalendar('refetchEvents');
alert('New event saved!');
}
else {
alert('Error, could not save event!');
}
}
});
Когда приходит обратный вызов, метод 'refetchEvents'
fullCalendar срабатывает только в MSIE 11, если открыто окно отладчика/разработчика. Неважно, установлена ли фактическая точка останова, только при открытом окне отладчика/разработчика рутина работает?
Даже запуск 'refetchEvents'
полностью отдельно от вызова $.ajax
имеет такое же поведение. т.е. если я запускаю функцию, как показано ниже:
<button type="button" class="btn" onclick="fetchEvents(); return false;">trigger</button>
с функцией:
function fetchEvents() {
$('#_Calendar').fullCalendar('refetchEvents');
}
Эффект точно такой же, «refetchEvents» срабатывает только в MSIE 11, если открыто окно отладчика/разработчика?
Я подумал, что это может быть проблема с синхронизацией, поэтому мой вариант запуска вручную, но поведение такое же, даже несмотря на то, что вызов 'refetchEvents'
происходит после того, как событие было вставлено. Даже обновление страницы не вызывает 'refetchEvents'
обновление событий только срабатывает - в MSIE 11- когда открыто окно отладчика/разработчика.
Как указано, ни один другой браузер на любой платформе (которую я тестировал) не дает такого же результата? (FireFox/Chrome/Safari/Android[Chrome и FireFox] работают безупречно...)
Кто-нибудь сталкивался с таким поведением и/или потенциально имел решение?
Буду признателен за ваш вклад!
$.ajax({cache: false, ...})
из предложенного вами поста, но не повезло... - person mtholen   schedule 03.05.2017