javascript - JavaScript 中 "SetInterval"的意外行为

标签 javascript jquery ajax jsp servlets

我有一个向 servlet 发出请求的 JavaScript。该请求有效,但我无法让它以 1 秒的指定时间间隔重复。我究竟做错了什么?

我对前端开发和 JavaScript 还很陌生。

$(document).ready(function() {
        $('#userName').blur(function(event) {
                var name = $('#userName').val();
                setInterval($.get('JqueryServlet', {
                        userName : name
                }, function(responseText) {
                        $('#ajaxResponse').text(responseText);}), 1000);
        });
});

最佳答案

setInterval 有效 with the arguments setInterval(callbackFunction, timingInMilliseconds)

看起来您正在将对 $.get 的调用直接放在 callbackFunction 参数中。不幸的是,这不起作用,因为您调用 $.get 的结果是作为参数传递的,而不是函数本身。即使您确实传递了该函数,也不会使用正确的参数调用它。

而是将其包装在匿名函数调用中或将其放入函数中,如下所示:

function getServlet() {
  // code
}
setInterval(getServlet, 1000); // to go off every 1 second

或者:

setInterval(function() {
  // code
}, 1000);

如果您坚持在 setInterval 中直接使用 $.get,您可以使用如下内容:

 setInterval(function(a,b,c){

      console.log(a + b +c);  

  }, 500, "a", "b", "c");

在大多数浏览器中(参见上面的链接),您可以在调用时使用 setInterval:

setInteval(callbackFunction, timingInMilliSeconds, callbackArg, callbackArg, ...);

关于javascript - JavaScript 中 "SetInterval"的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47614430/

相关文章:

javascript - 在 PHP 中使用 Javascript 打开 Bootstrap 模式

javascript - 如何在 Vue.js 项目中添加字体

asp.net - 使用 PageMethods 验证 Asp.net Ajax 请求的建议

javascript - Iframe 未加载并显示白色背景

javascript - jQuery 数组迭代

jquery - 如何使用 jquery 将 '#' 发送到 ajax url

jquery - 将内容固定到页面顶部 Jquery mobile

java - Spring boot 中 jQuery AJAX 请求出现 404

javascript - 无法使用 jquery 发布带有 json 的帖子

php - 使用 AJAX Post 的响应