我有两个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:如果我的代码不易阅读或理解,我可以解释一下。
答案 0 :(得分:0)
错误是非常愚蠢的......在class1
我忘了在self
的操作之前放obj
..它应该看起来像:
obj.abort = true;
obj.ajax.abort();
delete obj;