在我的javascript我定义了一个轮询器,以便每秒刷新一些内容。其定义如下:JavaScript轮询不立即启动
var poller = {
// number of failed requests
failed: 0,
// starting interval - 1 seconds
interval: 1000,
// kicks off the setTimeout
init: function() {
setTimeout(
$.proxy(this.getData, this), // ensures 'this' is the poller obj inside getData, not the window object
this.interval
);
},
// get AJAX data + respond to it
getData: function() {
var self = this;
$.ajax({
url: "api/view",
success: function(response) {
// ....do something....
// recurse on success
self.init();
}
},
error: $.proxy(self.errorHandler, self)
});
},
// handle errors
errorHandler: function() {
if (++this.failed < 10) {
this.interval += 1000;
// recurse
this.init();
}
}
};
poller.init();
});
问题是,它不会在加载页面时立即启动。有谁知道原因?提前谢谢了!
*问题是当页面加载时不会立即启动* - 当**启动时**会启动? –
工作得很好:https://jsfiddle.net/q4rvzv0o/(如果我删除尾部'});')。自然,'getData'第一次在'init'运行后是1000ms,因为这就是你所要做的。 –
你需要澄清一下“当页面加载时它不会立即启动”。手段。你期望发生什么,实际发生了什么,它们有什么不同,等等。 – pvg