Рассмотрим следующее управление очередью ajax, которое я пытаюсь:
function addAjax(func) {
$(document).queue("ajaxRequests", func);
console.log($(document).queue("ajaxRequests"));
}
function execQueue() {
$(document).dequeue("ajaxRequests");
console.log($(document).queue("ajaxRequests"));
}
function polling() {
execQueue();
setTimeout(function() {polling();},1100);
}
Передача любой функции, содержащей вызов ajax, в addAjax (func), она добавляется в очередь.execQueue выполняет один элемент в очереди.polling () периодически вызывает себя (экспериментирует с таймингами)
Есть ли какие-либо серьезные проблемы с этим подходом, которых я не вижу?например, производительность / JavaScript / скрытые проблемы?Худшее влияние, которое я видел до сих пор, это то, что если пользователь щелкает и щелкает и щелкает множество элементов, запускающих ajax (например, элементы в списке), он наверстает упущенное, и он будет перепрыгивать между локациями - но я невоспринимайте это как проблему.
Моя главная цель - остановить слишком много одновременных запросов к серверу, то есть немного замедлить работу, чтобы все пользователи не обновляли страницу и не вызывали 5 запросов одновременно, а ставили в очередьи выполнить последовательно.
Спасибо,
Дейв