2015-07-23 2 views
1

Я делаю приложение, которое постоянно (каждые 3 секунды) проверяет базу данных и записывает результат в виде таблицы в формате HTML с помощью jQuery.ajax(). У меня также есть нав бар, где вы выбираете, какую информацию загружать на стол, как это:Разрешить запуск только одного интервала

<div class="row"> 
     <div class="col-xs-3"> 
      <button type="button" class="btn" id="showPlaces">Mesas</button> 
     </div> 
     <div class="col-xs-3"> 
      <button type="button" class="btn" id="showReservations">Reservaciones</button> 
     </div> 
</div> 
<div class="row"> 
     <div class="col-lg-12"> 
      <table class="table table-striped" id="result_table"> 

      </table> 
      </div> 
     </div> 
</div> 

И я получил сценарий, который делает его работу:

var interval; 

function showPlaces(){ 
    $.ajax({ 
     type:'GET', 
     url: 'places.php', 
     dataType: 'html', 
     success: function(result){ 
      $('#result_table').html(result); 
     } // End of success function of ajax form 
    }); // End of ajax call  
} 

function showReservations(){ 
    $.ajax({ 
     type:'GET', 
     url: 'res.php', 
     dataType: 'html', 
     success: function(result){ 
      $('#result_table').html(result); 
     } // End of success function of ajax form 
    }); // End of ajax call 
} 

function stopUpdate(){ 
    clearInterval(interval); 
} 

$(document).ready(function() { 
    $('#showPlaces').click(function(){ 
     stopUpdate(interval); 
     interval = setInterval(function(){ showPlaces()} , 3000); 
    }); 

    $('#showReservations').click(function(){ 
     stopUpdate(interval); 
     inverval = setInterval(function() { showReservations()}, 3000); 
    }); 
}); 

Когда я запускаю это я получаю нет ошибок, как только одна из кнопок нажата, интервал повторяется неопределенно (это я хочу). Если я нажимаю оба, они начинают переписывать друг друга каждые три секунды (я не хочу!), не следует остановить функцию stopUpdate выполнение интервал после нажатия одной из кнопок? Ответ может быть очевидным, но я Prety новичка в асинхронные сайтах

+0

ваших запросов AJAX, вероятно, штабелирования и там несколько по-прежнему ожидает ответа, когда вы нажмете остановить, когда они приходят в них над писать – cmorrissey

ответ

1

Вы получили опечатку здесь:

inverval = setInterval (функция() {showReservations()}, 3000);

inverval вместо интервала

+0

Ничего себе, это неудобно, но я рад, что это было так просто, спасибо @Ncx!. Кто-нибудь знает хорошую IDE, которая может поймать такие вещи, прежде чем я буду дураком себя в Интернете? – TianRB

+0

Не волнуйся, так получилось. Я использую phpstorm, я проверил, и это подчеркивает не определенный «inverval». – Ncx