让for循环一秒执行一次

wang15072732418 2010-06-04 09:55:03
function time()
{
for(i=0;i<7;i++)
{
alert(i);
}
}

怎样让for循环里面的i,一秒钟执行一次。
...全文
2824 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
YangWenChaoX 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 wohaishiliumang 的回复:]

引用 24 楼 wang15072732418 的回复:

恩,都可以,不知道为什么document.write()就不行了


lz 可能是要显示什么东西,但是你一直纠结着用document.write来实现...
你可以使用这个方法,但是打开页面源代码看看,就知道为什么不行了.
[/Quote]
? ? ? 源码什么都没有 。。。
showjim 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 wang15072732418 的回复:]
恩,都可以,不知道为什么document.write()就不行了
[/Quote]
document.write只能在页面加载点有当前线程有效,和setTimeout不是同一个线程
function time()
{
if(!document.getElementById('test'))document.write("<div id='test'></div>");
for(i=arguments.length?arguments[0]+1:0;i<7;i++)
{
document.getElementById('test').innerHTML+=i;
setTimeout('time('+i+')',1000);
return;
}
};
time();
showjim 2010-06-04
  • 打赏
  • 举报
回复
function time()
{
for(i=arguments.length?arguments[0]+1:0;i<7;i++)
{
alert(i);
setTimeout('time('+i+')',1000);
return;
}
}
time();
wohaishiliumang 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 wang15072732418 的回复:]

恩,都可以,不知道为什么document.write()就不行了
[/Quote]

lz 可能是要显示什么东西,但是你一直纠结着用document.write来实现...
你可以使用这个方法,但是打开页面源代码看看,就知道为什么不行了.
xladykiller 2010-06-04
  • 打赏
  • 举报
回复
/**
* @author chu
*/
function time()
{
for(i=0;i<7;i++)
{
alert(i);
}
}
//每1秒执行一次time()
setInterval("time()",1000);
//设一个定时器,时间为一秒,只执行一次
setTimeout(time,1000);

setInterval(code: String, func: Function, 
interval: Number, args...: Array) : Number
setTimeout(code: String, func: Function,
delay: String, args: Array) : Number
anjing5566 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 daxuejianku 的回复:]

Concurrent.Thread是一个50K的js,Concurrent.Thread.js
里面有很多方法,比如sleep,stop,kill 强悍的地方就是多线程。能同时处理,IE不会出现假死状态。
[/Quote]

功能很诱人,但是50K...
wang15072732418 2010-06-04
  • 打赏
  • 举报
回复
恩,都可以,不知道为什么document.write()就不行了
wang15072732418 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 wohaishiliumang 的回复:]
HTML code

<HTML>
<HEAD>
</HEAD>

<BODY>
<div id="a"></div>
<script type="text/javascript">
function returnFun(funName,obj)
{
var array = new Array();
for(var i= 2; i < argume……
[/Quote]
恩,这个可以实现。
wohaishiliumang 2010-06-04
  • 打赏
  • 举报
回复

<HTML>
<HEAD>
</HEAD>

<BODY>
<div id="a"></div>
<script type="text/javascript">
function returnFun(funName,obj)
{
var array = new Array();
for(var i= 2; i < arguments.length; i++ )
array.push(arguments[i]);

return function()
{
funName.apply(obj,array);
};
}
function Timer(count){
count--;
document.getElementsByTagName("div")[0].innerHTML = count;
if(count <= 0){alert('完成');return;}
setTimeout(returnFun(Timer,null,count),1000);
}
Timer(7);
</script>
</BODY>
</HTML>

北京不不 2010-06-04
  • 打赏
  • 举报
回复
Concurrent.Thread是一个50K的js,Concurrent.Thread.js
里面有很多方法,比如sleep,stop,kill 强悍的地方就是多线程。能同时处理,IE不会出现假死状态。
北京不不 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 wang15072732418 的回复:]
HTML code
<html>
<head></head>
<script type="text/javascript">
function f ( i ){
while (i<10) {
document.body.innerHTML += i++ + "<br>";
Concurrent.Thread.sleep(1000);
……
[/Quote]
你得去下载Concurrent.Thread
anjing5566 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 wang15072732418 的回复:]

上面的所有方法好像执行到1的时候都停止执行了
[/Quote]

不要用 document.write
wang15072732418 2010-06-04
  • 打赏
  • 举报
回复
<html>
<head></head>
<script type="text/javascript">
function f ( i ){
while (i<10) {
document.body.innerHTML += i++ + "<br>";
Concurrent.Thread.sleep(1000);
}
}
Concurrent.Thread.create(f, 0);
Concurrent.Thread.create(f, 100000);
</script>
<body>
</body>
</html>

这样吗,没有反应呀
北京不不 2010-06-04
  • 打赏
  • 举报
回复

//推荐一个日本人写的js多线程Concurrent.Thread,功能还是很强大的,把下面代码保存成html跑一下。
function f ( i ){
while (i<10) {
document.body.innerHTML += i++ + "<br>";
Concurrent.Thread.sleep(1000);
}
}
Concurrent.Thread.create(f, 0);
Concurrent.Thread.create(f, 100000);
//在我使用的过程中,发现一个问题是,当js数组键值KEY为字符的时候,有点小错误
//var s=new Array()
//s["test"]='sdf';s["test1"]="sdf1";
//for(var a in s)
//{
// alert(a)
// alert(s[a])
//}
wang15072732418 2010-06-04
  • 打赏
  • 举报
回复
上面的所有方法好像执行到1的时候都停止执行了
wang15072732418 2010-06-04
  • 打赏
  • 举报
回复
<html>
<head></head>
<body>
<script type="text/javascript">
function time()
{
var i=0;
var runs = 7; //循环次数
var interval = 1000; //循环周期
var loopit = function(){
if(i==runs){
//alert("it is over!");
return;
}else{
document.write(i); //some function (你要调用的定时处理的方法)
i++;
setTimeout(loopit,interval);
}
}
loopit();
}
time();
</script>
</body>
</html>

为什么执行到1就停止了
anjing5566 2010-06-04
  • 打赏
  • 举报
回复

function time()
{
var i=0;
var runs = 7; //循环次数
var interval = 1000; //循环周期
var loopit = function(){
if(i==runs){
//alert("it is over!");
return;
}else{
alert(i); //some function (你要调用的定时处理的方法)
i++;
setTimeout(loopit,interval);
}
}
loopit();
}
time();
Go 旅城通票 2010-06-04
  • 打赏
  • 举报
回复
function time(now,max)
{
alert(now)
now++;
if(now<max)setTimeout('time('+now+','+max+')',1000);
}
time(0,7);

wang15072732418 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 aspwebchh 的回复:]
JScript code
function time(val)
{
for(var i = val;i<7;i++)
{
alert(i)
window.setTimeout("time("+ ++i +")",1000)
break;
}
}
time(0)
[/Quote]
不行的,你试试看
<html>
<head></head>
<body>
<script type="text/javascript">
function time(val)
{
for(var i = val;i<7;i++)
{
document.write(i);
window.setTimeout("time("+ ++i +")",1000)
break;
}
}
time(0)
</script>
</body>
</html>
anjing5566 2010-06-04
  • 打赏
  • 举报
回复

function time()
{
var i=0;
var loopit = function(){
if(i==7){
alert("it is over!");
return;
}else{
alert(i);
i++;
setTimeout(loopit,1000);
}
}
loopit();
}
time();
加载更多回复(13)

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧