我有一个关于间隔内的 AJAX 调用的问题。以及为什么它不起作用,或者以它的工作方式工作。
我有这个代码(这个不起作用)
setInterval($.ajax({
//Place code here
}), 2000);
但后来我这样做了
setInterval(function() {
$.ajax({
//Do ajax stuff here
});
}, 2000);
现在它可以工作了,但对我来说,这看起来我只做了一个额外的匿名函数。
我有一个关于间隔内的 AJAX 调用的问题。以及为什么它不起作用,或者以它的工作方式工作。
我有这个代码(这个不起作用)
setInterval($.ajax({
//Place code here
}), 2000);
但后来我这样做了
setInterval(function() {
$.ajax({
//Do ajax stuff here
});
}, 2000);
现在它可以工作了,但对我来说,这看起来我只做了一个额外的匿名函数。
setInterval
需要字符串格式的函数或可执行代码。
当放在一个字符串中时,第一个调用将起作用。
setInterval('$.ajax({ //Place code here })', 2000);
不鼓励使用这种语法,原因与使用eval
.
setInterval
还可以采用可选的参数列表。您可以利用这一事实并使用以下内容:
setInterval($.ajax/*a reference to the ajax function*/,
2000, {url: 'someurl', success: onSuccess, error: onError}/*args passed to $.ajax*/
);
请注意,这不适用于用于this
确定上下文的对象方法,因为 的值this
将绑定到window
. 也就是说,以下内容不起作用:
setTimeout($('h1').css, 1000, {'color': 'red'});