我有一个html页面,并希望从java脚本函数打印一些值。价值需要经常改变。我的问题是,不是改变“持续”(或至少,当代码需要改变值时),只有当整个Java脚本代码完成执行时才会改变它。我使用的是Chrome,并未在其他浏览器上进行测试。从网页上的javascript打印值
下面是一个小例子,重现问题:
<head>
<title>Test Continuous Output</title>
</head>
<body>
<p id="data"></p>
<script>
function onClick() {
for(var i =0;i<100;i++) {
document.getElementById("data").innerHTML = i;
for(var j = 0; j < 1000; j++) {
console.log("j="+j);
}
}
}
</script>
<button onclick = "onClick()">test</button>
</body>
编辑:在这里张贴的代码解决这个问题,在@ Alytrem的建议使用的setTimeout:
<head>
<title>Test Continuous Output</title>
</head>
<body>
<p id="data"></p>
<script>
var n=0;
function log() {
document.getElementById("data").innerHTML = n;
n=n+1;
if(n<100) {
setTimeout(log,100);
}
}
function onClick() {
log();
}
</script>
<button onclick = "onClick()">test</button>
</body>
你看过'document.write' ..吗? – 2013-04-09 12:18:33
@DipeshParmar我刚刚在我的代码document.getElementById(“data”)中替换。innerHTML = i通过document.write(i)。结果是在整个代码完成执行之前什么也没有发生,然后打印所有的数字。总之,这是同样的问题。 – S4M 2013-04-09 12:21:23
http://stackoverflow.com/questions/3583724/how-do-i-add-a-delay-in-a-javascript-loop – 2013-04-09 12:28:12