社区
JavaScript
帖子详情
怎么让JS延迟10S执行?
fisherboy
2008-07-23 09:46:01
比如
for(i=1;i<10;i++)
{
alert(i);
delay(10);//延迟10s再执行下一步
}
有没有现成的方法?函数?
...全文
43400
37
打赏
收藏
怎么让JS延迟10S执行?
比如 for(i=1;i<10;i++) { alert(i); delay(10);//延迟10s再执行下一步 } 有没有现成的方法?函数?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
37 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhulin10541
2011-08-15
打赏
举报
回复
搜到这个帖子,MS可以把循环弄成递归, 然后
var i = 0;
function a(i){
setInterval("a(i++)",1000);
}
kevenchung
2010-02-03
打赏
举报
回复
另外补充一点,方法自调很容易出现死循环,我不太清楚这样写法有什么不好的地方
kevenchung
2010-02-03
打赏
举报
回复
这个问题也困绕了好久
今日再搜索也未果
不过突然想出另外种实现方法,不知是不是楼主要的
我原先的代码
function reloadAll(){
if(confirm("确认要刷新所有行数据吗?") == true){
var tableObj = document.getElementById("matchList");
for(var i=1; i<tableObj.rows.length; i++){
var imgs = tableObj.rows[i].getElementsByTagName("img");
if(imgs.length > 0){
imgs[0].click();
}
}
}
}
逻辑就是点击表格中的一个图片
在碰到有几百行的时候,IE会假死,这令我很不爽
于是想能否延时的执行各行中的click()方法,也就是在for循环中使用延时,但搜索后未果-_-b
现在想出另外种方式,实验下来效果也不错,代码如下
function reloadAll(){
if(confirm("确认要刷新所有行数据吗?") == true){
var tableObj = document.getElementById("matchList");
setTimeout('imgClick(1, '+tableObj.rows.length+')',1000);
}
}
function imgClick(rowIndex, rowsLength){
var tableObj = document.getElementById("matchList");
var imgs = tableObj.rows[rowIndex].getElementsByTagName("img");
if(imgs.length > 0){
imgs[0].click();
}
rowIndex = rowIndex + 1;
if(rowIndex < rowsLength){
setTimeout('imgClick('+rowIndex+', '+rowsLength+')',1000);
}
}
把FOR循环中的条件判断作为参数,调用另外一个方法,方法中判断条件是否成立,如果成立,则循环调用本身,这样imgClick只有在上一个被调用后1000毫秒后执行下一个imgClick,这样就变成了延时间,而且如果各个延时不同,也可以在IF中判断
如过用第1种方式直接在FOR循环中使用延迟调用imgClick(),则是1000毫秒后,全部都执行了......
希望这个对楼主有用,不过看帖子时间,似乎过了很久很久了.........
itpentiuman
2008-08-06
打赏
举报
回复
我找寻JavaScript的sleep函数已经几年了,没有
leosming
2008-07-27
打赏
举报
回复
[Quote=引用 2 楼 lawrendc 的回复:]
JScript code
setTimeout(function(){alert("Hello world");},10000);
[/Quote]
nicholsky
2008-07-26
打赏
举报
回复
21楼的就是一种变能方法,而且只能这样,23楼的就说了,强制搞一些东西去进行延迟会让IE假死,不现实,所以楼主想要构造一个能在for里延迟的函数是不可能实现的,明知不可为的事就不要想了。
HonorsOffice
2008-07-26
打赏
举报
回复
JS中没有你说的那种自带的方法,但可以通过模拟来实现这种效果。
网站上搜索一下,去吧。
chris9999
2008-07-24
打赏
举报
回复
setTimeOut
就可以了
lyboyc
2008-07-24
打赏
举报
回复
写错了,书里似乎是把一种循环用另一种循环替代,记得数据结构书里有这个,LZ自己学看吧,清华版的那本
lyboyc
2008-07-24
打赏
举报
回复
[Quote=引用 25 楼 fisherboy 的回复:]
[color=#0000FF]如果用setTimeout setInterval 我就不用来问你们了。
别把我的问题看的那么简单。
我就是要在for循环里实现。
另外,
有一100行的代码里,
我在50行和52行之间的51行,要实现延时10S,10S之后再执行第52行的代码。
这100行代码没有一个function。全部是顺序执行的。
附:
别问我为什么100行代码没有一个函数。只要你在现实开发中,你就有可能遇到很棘手的现实的问题。
事实如此。
怎么样?[/col…
[/Quote]
楼主去翻翻数据结构吧,里面有把循环全部转成非循环的方法 ,我是忘记了
lt1129
2008-07-24
打赏
举报
回复
setTimeOut
orz_ORZ_orz
2008-07-24
打赏
举报
回复
关注
s_liangchao1s
2008-07-24
打赏
举报
回复
个人认为 单纯从for循环的角度来看 是无法实现的
fisherboy
2008-07-24
打赏
举报
回复
如果用setTimeout setInterval 我就不用来问你们了。
别把我的问题看的那么简单。
我就是要在for循环里实现。
另外,
有一100行的代码里,
我在50行和52行之间的51行,要实现延时10S,10S之后再执行第52行的代码。
这100行代码没有一个function。全部是顺序执行的。
附:
别问我为什么100行代码没有一个函数。只要你在现实开发中,你就有可能遇到很棘手的现实的问题。
事实如此。
怎么样?
lawrendc
2008-07-23
打赏
举报
回复
[Quote=引用 14 楼 s_liangchao1s 的回复:]
引用 13 楼 lawrendc 的回复:
呵呵
你说我理解的对不?
[/Quote]
right
nicholsky
2008-07-23
打赏
举报
回复
s_liangchao1s说得对,JS无办法在for循环里延迟一个时间再执行下一次的循环,不行的。
只能变通,不用for来循环,采取setTimeout或setInterval去执行i次函数或语句,把i作为全局变量或传递参数进行每次+1,以前有人试过想做出一个完美的类似vbs的sleep,但结果总是不如愿的,别想了。
s_liangchao1s
2008-07-23
打赏
举报
回复
[Quote=引用 13 楼 lawrendc 的回复:]
呵呵
[/Quote]
你说我理解的对不?
lawrendc
2008-07-23
打赏
举报
回复
呵呵
s_liangchao1s
2008-07-23
打赏
举报
回复
[Quote=引用 11 楼 lawrendc 的回复:]
引用 9 楼 s_liangchao1s 的回复:
引用 8 楼 lyboyc 的回复:
2楼正解setTimeout('function(){......}',10000);
还真有敢说正解的
老大 我那句错在哪里??
[/Quote]
哦 也许我理解错了 我理解楼主的要求是让for循环每隔10秒走一步
lawrendc
2008-07-23
打赏
举报
回复
[Quote=引用 9 楼 s_liangchao1s 的回复:]
引用 8 楼 lyboyc 的回复:
2楼正解setTimeout('function(){......}',10000);
还真有敢说正解的
[/Quote]
老大 我那句错在哪里??
加载更多回复(17)
auto-task-helper:依赖于Auto.
js
(Android),自动化
执行
双十一电商们的任务
自动任务助手 迫于双十一淘宝京东任务重复性太高,所以可以使用 (仅支持Android),写了两个脚本来帮助我们自动完成任务。 如何使用 本脚本及软件在三星s10 ,一加6t , vivo nex上测试通过。( ) 1.安装 由于Auto.
js
作者停止了发包,在项目的发布中和应用商店已经无法下载官方应用程序。所以本项目提供了一个我自己编译的的应用程序。 建议使用原项目自己编译。原项目issue中也有第三方提供的包,但同样无法确认是否为原版。 2.介绍
js
将本项目中的
js
文件导入安装好的Auto.
js
应用程序,单击运行即可。 注意事项 Auto.
js
需要无障碍服务权限。
执行
任务时,请先确定当前脚本在Anto.
js
中的管理tab中没有正在
执行
。 任务中存在一些
延迟
处理,最多可能
延迟
10s
左右,不要过早的人为介入。之后可能会继续
执行
,或者指明提示。
执行
异常时,可以在Auto.
js
app
css3实现多个元素依次显示效果
在css3中,我们使用animation与keyframes结合,可以给元素添加各种各样的动画效果。这篇文章主要介绍了css3实现多个元素依次显示效果,需要的朋友可以参考下
纯CSS3白云飘来飘去动画特效.zip
纯CSS3白云飘来飘去动画特效是一款纯CSS3实现的没有使用任何图片动画特效。
纯css3广告文字滚动效果.zip
纯css3制作的广告文字动画特效,适合插用于各种广告宣传页面
CSS3 SVG实现10秒倒计时特效特效代码
CSS3 SVG实现10秒倒计时特效是一款Gooey倒计时动画特效。
JavaScript
87,996
社区成员
224,708
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章