【发布时间】:2018-05-21 17:46:27
【问题描述】:
我试图更好地理解 jQuery 中延迟对象的使用。
下面的getData 方法异步获取一些数据。完成后,它应该由addToChart 显示到某个预定义的 (log) 部分。这应该定期发生,因此我在getData 的done 处理程序中使用setInterval。
function getData() {
return $.ajax({
url: 'https://demo-live-data.highcharts.com/time-data.csv',
type: 'GET'
});
}
getData().done(addToChart, function() {
setInterval(getData, 1000);
});
function addToChart(data) {
document.getElementById('log').innerText += data;
}
$(document).ready(function() {
getData();
});
在上面的代码中,getData 似乎只被调用了一次。如何让它定期调用?
另外,有什么方法可以实际调试此代码,而不是运行它并挠头,为什么它的行为不符合预期? (如果您想知道,我是 JavaSCript 的新手)。我使用 Firefox 调试器单步调试了代码,但这没有帮助。
【问题讨论】:
-
setTimeout只会运行一次。你想要setInterval。除此之外,还有什么不工作? -
是的,@KevinBoucher 是正确的。这个问题可能是重复的。检查这个答案stackoverflow.com/a/729943/4040563
-
@KevinBoucher 对,我把电话改成了
setInterval。但是,它仍然只执行一次。
标签: javascript ajax jquery-deferred