JavaScript中的“SetInterval”意外的行为
我有一个向servlet发出请求的JavaScript。请求有效,但我不能让它在1秒的指定时间间隔重复。我究竟做错了什么?JavaScript中的“SetInterval”意外的行为
我对前端开发和JavaScript很新颖。你想要做
$(document).ready(function() { $('#userName').blur(function(event) {
var name = $('#userName').val();
setInterval($.get('JqueryServlet', {
userName : name
}, function(responseText) {
$('#ajaxResponse').text(responseText);}), 1000);
});
});
回答:
什么,就把下面这个区块内:
setInterval(function(){ alert("I will be called in 3 second and again after 3 seconds");
}, 3000);
这个现在就来试试:
$(document).ready(function() { $('#userName').blur(function(event) {
var name = $('#userName').val();
setInterval(function(){
$.get('JqueryServlet', {
userName : name
}, function(responseText) {
$('#ajaxResponse').text(responseText);
});
}, 1000);
});
});
回答:
setInterval
工作with the argumentssetInterval(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中的“SetInterval”意外的行为 的全部内容, 来源链接: utcz.com/qa/259140.html