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

回到顶部