你这里的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()
}