社区
JavaScript
帖子详情
怎么让JS延迟10S执行?
fisherboy
2008-07-23 09:46:01
比如
for(i=1;i<10;i++)
{
alert(i);
delay(10);//延迟10s再执行下一步
}
有没有现成的方法?函数?
...全文
43570
37
打赏
收藏
怎么让JS延迟10S执行?
比如 for(i=1;i<10;i++) { alert(i); delay(10);//延迟10s再执行下一步 } 有没有现成的方法?函数?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
JavaScript 例题
延迟
10s
自动手动换图
本文介绍了一个使用HTML、CSS和JavaScript实现的简单网页轮播图效果,包括图片自动切换及按钮控制前后切换的功能。
js
实现10秒后
执行
下一步操作
本文介绍了一个使用JavaScript实现的倒计时按钮示例,该按钮初始为禁用状态并显示倒计时,倒计时结束后按钮变为可用。通过定时调用函数更新按钮的状态和显示内容。
JavaScript
延迟
加载的方法
延迟
加载是优化网页性能的技术,可减少初始页面加载时间。本文介绍了多种 JavaScript
延迟
加载方法,包括图片、脚本、CSS 资源的
延迟
加载,还提及框架和库的应用、Intersection Observer API 等,结合新特性与传统手段可构建高效 Web 应用。
JavaScript
延迟
加载的方法( 7种 )
JavaScript脚本
延迟
加载可加快页面初始加载速度、改善用户体验并减轻服务器压力。本文介绍了几种常见方法,如使用标签属性、动态创建元素、模块化和代码分割等,还提及服务端渲染和客户端水合作用,指出选择方法需依具体场景和需求而定。
js
延迟
加载的几种方法
本文介绍了JavaScript
延迟
加载的六种常见方法,包括使用defer和async属性、动态创建DOM、使用jQuery的getScript()方法、setTimeout
延迟
加载及调整
JS
加载位置。通过这些方法可以有效提升网页加载速度。
JavaScript
87,984
社区成员
224,681
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章