Javascript 如何使用setInterval多次调用函数?
我试着做了10次for循环,我写了setInterval来再次调用我的函数,但它不起作用。我的for循环只转了十圈。那我该怎么办呢Javascript 如何使用setInterval多次调用函数?,javascript,ajax,Javascript,Ajax,我试着做了10次for循环,我写了setInterval来再次调用我的函数,但它不起作用。我的for循环只转了十圈。那我该怎么办呢 function randomThumbNews() { for(var i=0;i<10;i++){ $.ajax({ type: "get", url: "Home/Oku", data: {}, success: function (data) {
function randomThumbNews() {
for(var i=0;i<10;i++){
$.ajax({
type: "get", url: "Home/Oku", data: {},
success: function (data) {
$("#thumbNews_" + i).html(data);
}
});
}
}
setInterval(randomThumbNews, 3000);
函数randomThumbNews(){
对于(var i=0;i而言,问题在于——当
已调用循环,因此i
将始终为10
您将只看到发布到您的
之一的结果
这将修复它,因为函数参数没有闭包:
function ajaxAndSet(counter)
{
$.ajax({
type: "get",
url: "Home/Oku",
data: {},
success: function (data)
{
$("#thumbNews_" + counter).html(data);
}
});
)
function randomThumbNews()
{
for(var i=0;i<10;i++)
{
ajaxAndSet(i);
}
}
setInterval(randomThumbNews, 3000);
函数ajaxAndSet(计数器)
{
$.ajax({
键入:“获取”,
网址:“主页/奥库”,
数据:{},
成功:功能(数据)
{
$(“#拇指新闻”+计数器).html(数据);
}
});
)
函数randomThumbNews()
{
对于(var i=0;i尝试以下方法:
$.ajax({
type: "get", url: "Home/Oku", data: {},
context: i, /* NEW - this value comes to your success callback as 'this' */
success: function (data) {
$("#thumbNews_" + this).html(data);
}
});
您是否检查了错误控制台?您发布的代码是错误的。您已将setInterval()放入
在一个对象文本中,这是无效的语法。我很惊讶代码居然能运行。你能解释一下你想做得更好一点吗?你说你试图运行它10次,但它运行了10次?这是JS n00b通常的问题,它期望闭包中的I
在执行时与声明c时一样losure。选择器每次的计算结果都是#thumbnews\u 10
,这是他想说的。有点离题,但您发布的代码效率很低。最好每x个时间发送一个请求,以返回10条新闻(或您得到的任何内容),而不是每x个时间执行10个ajax请求!techfoobar-我相信这仍然会有同样的问题。
$.ajax({
type: "get", url: "Home/Oku", data: {},
context: i, /* NEW - this value comes to your success callback as 'this' */
success: function (data) {
$("#thumbNews_" + this).html(data);
}
});