2015-05-04 3 views
3

Я использую следующий код для очереди на запросы ajax, а не для блокировки действий на странице. Проблема в том, что мне нужно показать значок загрузки, чтобы указать, что выполнение очереди не завершено. Я не могу понять, как это сделать, и все, что я пробовал, просто закрывается немедленно.Значок загрузки ajaxQueue

// jQuery on an empty object, we are going to use this as our Queue 
    var ajaxQueue = $jq({}); 

    $jq.ajaxQueue = function(ajaxOpts) { 
    var jqXHR, 
     dfd = $jq.Deferred(), 
     promise = dfd.promise(); 

    // queue our ajax request 
    ajaxQueue.queue(doRequest); 

    // add the abort method 
    promise.abort = function(statusText) { 
     // proxy abort to the jqXHR if it is active 
     if (jqXHR) { 
      return jqXHR.abort(statusText); 
     } 
     // if there wasn't already a jqXHR we need to remove from queue 
     var queue = ajaxQueue.queue(), 
      index = $jq.inArray(doRequest, queue); 

     if (index > -1) { 
      queue.splice(index, 1); 
     } 
     // and then reject the deferred 
     dfd.rejectWith(ajaxOpts.context || ajaxOpts, 
      [ promise, statusText, "" ]); 
     return promise; 
    }; 

    // run the actual query 
    function doRequest(next) { 
     jqXHR = $jq.ajax(ajaxOpts) 
      .done(dfd.resolve) 
      .fail(dfd.reject) 
      .then(next, next); 
    } 
    return promise; 
}; 

ответ

0

Вы можете создать div на странице, чтобы сохранить значок. В этом случае я бы использовал значок загрузки gif. Когда вы первый огонь Аякса на странице использования .Show(), чтобы отобразить его затем внутри вашего .done использования .hide()

Похожие на этот пост How can I display a loading gif until an entire html page has been loaded

Смежные вопросы