js在循环中调用方法

JavaScript015

js在循环中调用方法,第1张

你这里的ajax是异步执行的,所以调用还没执行完成,for循环接着往下执行了。

把ajax改成同步的方式

$.ajax({

        async: false,//这里设置成同步

        type : "GET",

        url : 'tet.php',

        complete: function(msg){

            alert('complete')

        },

        success : function(data) {

            alert('success')

            temp=data

        }

    })

你这样子写相当于一次开启了10个计时器,因为for循环一下子就执行完了,然后就是在30秒后,会一下子输出10个带编号的时间。按照你的想法,应该是隔30秒,输出一个时间,时间前带有数组内的编号。为了方便演示,可以先用较短的时间作为时间间隔。

var arr=new Array(1,2,3,4,5,6,7,8,9,0),

delay=5000// 这里可以设置时间间隔,这里为5000ms=5s

function temp() {

var t=arr.shift()

document.write(t+"----"+(new Date()).getTime()+"<br />")

if(arr.length)

setTimeout("temp()",delay)

}

window.onload=function() {

temp()

}