У меня есть несколько текстовых редакторов на одной странице. Существует автосохранение обоих выполняемых ajax-вызовов, которые являются отдельными. Каждый текстовый редактор сохраняется при утере фокуса или когда фокус находится внутри редактора каждые 20 секунд.Заблокировать множественные вызовы ajax
Когда редактор не сохранен, и пользователь переходит от него, я показываю «navigate away warning».
Теперь мне нужно управлять предупреждением о том, что когда один редактор находится в середине сохранения, а другой заканчивается, предыдущее предупреждение не будет удалено.
Что я сейчас:
editorOneIsSaving=true;
SetNavigateAwayNotification();
$.ajax({ type: "POST", contentType: "application/json",
dataType: 'json', url: "/SaveEditorOne",
data: mypostdata1,
success: function (msg) {
editorOneIsSaving = false;
if (!editorTwoIsSaving) {
RemoveNavigatingAwayNotification();
}
updateSavedInfo();
},
});
Для второго редактора:
editroTwoIsSaving=true;
SetNavigateAwayNotification();
$.ajax({ type: "POST", contentType: "application/json",
dataType: 'json', url: "/SaveEditorTwo",
data: mypostdata2,
success: function (msg) {
editorTwoIsSaving = false;
if (!editorOneIsSaving) {
RemoveNavigatingAwayNotification();
}
updateSavedInfo();
}
});
Я смотрел на добавление объекта в массив или список, но это не очень хорошо в JavaScript. Таким образом, я бы знал, кто является владельцем блокировки или если будет больше редакторов, я могу убедиться, что тот же редактор не будет блокировать несколько раз.
Возможно, я просто переусердствовал, и мне нужно просто списать счетчик, который, если есть 0, затем удалить навигацию.