我有一个向 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/