javascript - 带有间隔的 jQuery AJAX

标签 javascript jquery ajax setinterval

我对某个时间间隔内的 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 的值将绑定(bind)到 window。也就是说,以下内容不起作用:

setTimeout($('h1').css, 1000, {'color': 'red'});

关于javascript - 带有间隔的 jQuery AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19116243/

相关文章:

javascript - 菜单导航响应式(在 Bootstrap 中)

javascript - 页面上两个不同位置的两个文本 html 文本输入具有相同的提交 id

javascript - 如何使用 java、jquery 或 javascript 访问扫描仪和扫描文档

ajax - Spring Boot - 外部 Tomcat 服务器 Ajax 身份验证失败消息

javascript - 如何实现这种动画效果

javascript - 通过标签 html 中的照片列表进行更改

javascript - 有没有和animationEnd功能一样的无限CSS动画的东西?

php - 无法在 php 中使用 ajax?

javascript - 带有渲染的 Reactjs 意外无限循环

javascript - TinyMCE 颜色选择器下拉菜单出现在屏幕外