这个javascript的setInterval()代码有什么问题?

时间:2011-11-17 15:36:29

标签: javascript python

您好我正在处理Django中的应用程序。我有多个线程在运行,我需要定期检查线程的状态。所以我使用了setInterval(),但是当我在线程中遇到异常时我想要停止它。但它并没有停止并继续调用URL。这是我的代码:

function checkThreadsStatus(){
   var g_progress_intv = setInterval(function() {
       $.post("some_url", function(json_response) {
           var jsonObj = eval("(" + (json_response) + ")");
           if (jsonObj.exceptionOccur){
               clearInterval(g_progress_intv);
               g_progress_intv = 0;
           }
           else{
               //do some stuff
           }
           });
    }, 2000);
 }

jsonObj.exceptionOccur是一个boolean变量。但是True setInterval()不是Stop

2 个答案:

答案 0 :(得分:0)

如果您在var g_progress_intv之前定义setInterval该怎么办?但它应该在你得到它的时候工作,你的定义没有错。

DEMO:http://jsfiddle.net/fH6c9/2/

function checkThreadsStatus(){
    var g_progress_intv;
    g_progress_intv = setInterval(function() {

您应该使用$.parseJSON()

而不是您的评估

如果您在一个间隔内呼叫checkThreadsStatus(),则只会在设置的X个间隔中重置一次超时。

您服务器的响应是什么?

答案 1 :(得分:0)

您是否多次调用checkThreadsStatus()函数?间隔可能会停止,但您将它们声明为彼此。在那里使用一些警报或console.log来确定变量的实际状态。