By Sam Deering

Delay AJAX call for X seconds

By Sam Deering

jQuery code snippet to delay AJAX call for X seconds. Could be used for events that require action before getting data from the server side via AJAX.

Update: There is an easier way to do this by using setTimeout() function – See below for an example.

Enjoy! :)

var pendingCall = { timeStamp: null, procID: null };

$('li a').click(function (e) {
    var getUrl = $(this).attr("href");
	var timeStamp =;

    var printCall = function () {
            url: getUrl,
            type: "GET",
            beforeSend: function () { },
            error: function (request) { alert(request) },
            success: function (data) {
                if (pendingCall.timeStamp != timeStamp) { return false; }
                pendingCall.procID = null;

    if (pendingCall.procID) {
	//set the time before call 3000 = 3 seconds
    pendingCall = { timeStamp: timeStamp, procID: setTimeout(printCall, 3000) };

setTimeout Alternative

Here is a snippet that will remove loading mask from your page, one second after a website was loaded. You can setup a loading mask to cover your whole website while your website is loading preventing people form seeing loading images for example.

jQuery(document).ready(function () {
	setTimeout( "jQuery('#loading_mask').hide();", 1000 );
The most important and interesting stories in tech. Straight to your inbox, daily. Get Versioning.
Login or Create Account to Comment
Login Create Account