Фрагмент кода jQuery для задержки вызова AJAX на X секунд. Может использоваться для событий, которые требуют действий перед получением данных со стороны сервера через AJAX.
Обновление: есть более простой способ сделать это с помощью функции setTimeout () — см. Пример ниже.
Наслаждайтесь! 🙂
var pendingCall = { timeStamp: null, procID: null }; $('li a').click(function (e) { e.preventDefault(); var getUrl = $(this).attr("href"); var timeStamp = Date.now(); var printCall = function () { $.ajax({ url: getUrl, type: "GET", beforeSend: function () { }, error: function (request) { alert(request) }, success: function (data) { if (pendingCall.timeStamp != timeStamp) { return false; } $('#contentdiv').html(data); pendingCall.procID = null; } }); }; if (pendingCall.procID) { clearTimeout(pendingCall.procID) }; //set the time before call 3000 = 3 seconds pendingCall = { timeStamp: timeStamp, procID: setTimeout(printCall, 3000) }; });
Альтернатива setTimeout
Вот фрагмент, который удалит маску загрузки с вашей страницы, через одну секунду после загрузки веб-сайта. Вы можете настроить маску загрузки, чтобы охватить весь ваш веб-сайт во время загрузки, чтобы люди не могли видеть загрузку изображений, например.
jQuery(document).ready(function () { setTimeout( "jQuery('#loading_mask').hide();", 1000 ); });