2013-10-07 4 views
0

Я столкнулся с одной проблемой при использовании setInterval метода.javascript setInterval ясный вопрос

Когда страница jsp загружается в это время (onload), я вызываю один метод setInterval (function(), time). Ниже приводится OnLoad код моего JSP

var refreshLoop = 0; 
var refreshFrequency = 900000; 

$(window).load(function() { 
    startRefresh(); 
}); 

function startRefresh() { 
    refreshLoop = setInterval("refreshScreen()", refreshFrequency); 
} 

Теперь у меня есть функциональность перетаскивания на этой странице перетащить одну строки от дел до других дел. Когда я бросаю свою строку в другую таблицу, таблица которой обновляется. Я сделал ajax, вызвав одну каплю, которая произошла с другим div Теперь, что я хочу сделать, это когда My drop id completed. Я хочу удалить этот setInterval и сделать по умолчанию.

ex: Я установил свой setInterval тайминги 10 минут на загрузку страницы, поэтому каждый раз, когда он будет загружать страницу через 10 минут. Теперь, как только я перетащил его, он начнет отсчет 10 минут, как только я опустил строку в другой div.

Я сделал это в JavaScript и ajax.

Пожалуйста, предложите что-нибудь по этим вопросам.

+0

Пожалуйста, не используйте код в 'setInterval'. Вместо этого используйте 'setInterval (refreshScreen, refreshFrequency)' и посмотрите https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval и https://developer.mozilla.org/ EN-US/Docs/Web/JavaScript/Руководство. – Zeta

+0

где код для очистки интервала? Вы пытались использовать window.clearInterval (refreshLoop)? – Abhidev

ответ

0

Если вы хотите, чтобы очистить таймер, используйте:

clearInterval(refreshLoop); 
startRefresh(); 
1

window.clearInterval(refreshLoop) всякий раз, когда вы хотите, чтобы очистить интервал.

+0

Можно ли использовать window.clearInterval (refreshLoop), когда я получил ответ ajax? ли это интервал? – user223614

+0

Да, это не связано с ответом ajax. refreshLoop содержит идентификатор таймера внутри него, который очищается при использовании window.clearInterval – geevee

+0

Okies. В моем случае это не будет. Я попытался дать его как window.clearInterval (refreshLoop), но он не очистится, и мой setInterval будет работать в указанное время. что мне нужно для этого? – user223614

1
//try this code 
<script type="text/javascript"> 
    var refreshLoop = ''; 
    var refreshFrequency = 900000; 

    $(window).load(function() { 
     startRefresh(); 
    });  

    function startRefresh() { 
     if(refreshLoop){ 
      clearInterval(refreshLoop); 
      refreshLoop = ''; 
     } 
     refreshLoop = setInterval("refreshScreen()", refreshFrequency); 
    } 
</script> 
+0

Не нужно устанавливать его в пустую строку - вы можете просто оставить ее равной 0. Кроме того, не имеет значения, если вы 'clearInterval' на идентификаторе интервала, который не существует, поэтому нет необходимости в выражении if :) – Archer

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