jQuery AJAX Long Poll不会中止

时间:2014-02-08 22:57:50

标签: javascript jquery ajax long-polling

我有两个JS类:

第一个:

var class1 = function() {
    this.obj = new class2

    this.stopLongPollAjax = function() {
        obj.abort = true;
        obj.ajax.abort();
        delete obj; // it's important part for me
    }
    var self = this;
}

第二个:

var class2 = function() {
    this.abort = false;
    this.ajax = null;

    this.init = function() {
         self.longpoll();
    }

    this.longpoll = function() {
        if(!self.abort) {
            self.ajax = $.ajax({
                type: 'POST',
                url: //url here
                complete: function() {
                    self.longpoll();
                },
                success: function(response) {
                    if(response == 1) {
                        // callback
                    }         
            }            
        });
    }
    var self = this;
    this.init();
}

当我从stopLongpoll class1调用longpoll方法时,不会再创建另一个循环(当它完成时)但是在调用stopLongpoll方法后它没有立即停止。有任何想法吗?

PS:如果我的代码不易阅读或理解,我可以解释一下。

1 个答案:

答案 0 :(得分:0)

错误是非常愚蠢的......在class1我忘了在self的操作之前放obj ..它应该看起来像:

obj.abort = true;
obj.ajax.abort();
delete obj;