2013-05-24 2 views
0

Я это реализовано:Как остановить АЯКС погрузчик

$('#loader').hide() // hide it initially 
.ajaxStart(function() { 
         $('#loader').show(); 
         }) 
.ajaxStop(function() { 
         $('#loader').hide(); 
        }); 

И это прекрасно работает, когда я использую метод AJAX. Но я хочу отключить загрузчик ajax в этом случае.

setInterval(function(){ 
     //I need to disable loader in here 
    $.ajax({ 
      type: "POST", 
      url: "live_top_5.php", 
      dataType: 'json', 
      cache: false, 
      success: function(response) 
      { 
           //do something 
      } 
      });  
},10000); 

Проблема заключается в том, что мой погрузчик покрывает весь экран, и я хочу, чтобы отключить его для этого определенного Ajax вызова, потому что я освежающий это содержание каждые 10 сек. Это возможно? Чтобы отключить загрузчик ajax для определенного вызова ajax?

ответ

2

у вас есть возможность для этого , отметьте это дополнительное примечание:

Если $ .ajax() или $ .ajaxSetup() вызывается с глобальной опцией, установленной в false, метод .ajaxStart() не срабатывает.

http://api.jquery.com/ajaxStart/

Edit: добавить глобальный параметр на вызовы, которые не должны срабатывать событие

$.ajax({ 
      type: "POST", 
      url: "live_top_5.php", 
      dataType: 'json', 
      cache: false, 
      global: false, 
      success: function(response) 
      { 
           //do something 
      } 
      });  
+0

так решение на мой код будет как что? Я не могу найти этот глобальный вариант, о котором вы говорите. –

+0

Я отредактировал ответ. Но проверьте документ. – Maresh

+0

Я действительно не ожидал увидеть такое чистое и простое решение !!! Большой! спасибо –

0

использование этого -

setInterval(function(){ 
    setTimeout((function(){ $('#loader').hide();}),200); 
$.ajax({ 
     type: "POST", 
     url: "live_top_5.php", 
     dataType: 'json', 
     cache: false, 
     success: function(response) 
     { 
          //do something 
     } 
     });  
},10000); 

или вы можете использовать флаг инициализации

var allowed = true; 
$('#loader').hide() // hide it initially 
.ajaxStart(function() { 
        if(allowed) $('#loader').show(); 
        }) 
.ajaxStop(function() { 
        $('#loader').hide(); 
       }); 

и проверки АЯКС для этого

setInterval(function(){ 
    allowed = false; 
    $.ajax({ 
     type: "POST", 
     url: "live_top_5.php", 
     dataType: 'json', 
     cache: false, 
     success: function(response) 
     { 
       allowed = true;   //do something 
     } 
     });  
    },10000); 
Смежные вопросы