第一种 :
function reSetDevOptType(prodInstId){
var aMainObjId="tabResChg"+"_"+prodInstId;
var aMainObj=document.getElementById(aMainObjId);
if(aMainObj!=null){
if(aMainObj.contentWindow.refreshResStateAfterLoad){
aMainObj.contentWindow.refreshResStateAfterLoad();
clearTimeout();
}else{
window.setTimeout("reSetDevOptType("+prodInstId+");",100);
}
}
}
第二种:
var iIntervalId = null;
iIntervalId = setInterval(function(){
var aMainObjId="tabResChg"+"_"+prodInstId;
var aMainObj=document.getElementById(aMainObjId);
if(aMainObj!=null){
if(aMainObj.contentWindow!=null&&aMainObj.contentWindow!='undefined'){
if(aMainObj.contentWindow.chgColVisible!=null&&aMainObj.contentWindow.chgColVisible!='undefined'){
aMainObj.contentWindow.chgColVisible("RES_STATE",false);
clearInterval(iIntervalId);
}
}
}
}, 100);
setTimeout函数定时执行某函数,可在给函数传参时容易出现问题,这里是自己在网上查询的一些解决方法:
1、采用字符串
setTimeout("start(" + argu + ")",1000)
此方法用于传递字符串,无法传递对象
2、匿名函数
setTimeout(function(){ start(argu)},1000); 调用start函数并传arg参数
字符串、对象都行
3、在有些情况下需在循环中使用,如:
window.onload=function(){
var a=[{id:1},{id:2},{id:3},{id:4}];
for(var i=0;i<3;i++){
setTimeout(function(){start(a[i])},1000);
}
}
function start(obj){ alert(obj.id);}
输出的结果都为 4。因为在一个函数体中,a和i相对于匿名函数是全局的,循环执行完后i=3 ,都执行start(a[3]),所以输出结果相同。
这种情况怎么解决呢,只需把setTimeout封装到一个函数中即可
window.onload=function(){
var a=[{id:1},{id:2},{id:3},{id:4}];
for(var i=0;i<3;i++){
set(a[i]);
}
}
function set(obj){ setTimeout(function(){start(obj)},1000); }
obj和匿名函数在同一作用域,所以在匿名函数中可以直接访问obj,而且每次执行setTimeout时都会产生新的匿名函数体和作用域,所以定时执行匿名函数时调用start并传值就不会出问题了。(此为个人的理解,不一定正确)
function start(obj){ alert(obj.id);}
在网上看到有人封装了一个函数,也可实现该功能
var util={
setTimeout:function(fun, delay) {
if(typeof fun == 'function'){
var argu = Array.prototype.slice.call(arguments,2);
var f = (function(){
fun.apply(null, argu);
}
);
return window.setTimeout(f, delay);
}
return window.setTimeout(fun,delay);
}
}
window.onload=function(){
var a=[{id:1},{id:2},{id:3},{id:4}];
for(var i=0;i<3;i++){
util.setTimeout(start,1000,a[i]);
}
}
分享到:
相关推荐
标题“系统每隔一段时间自动点击鼠标左键”所描述的功能,是利用编程技术模拟人手对鼠标左键的点击动作,按照预设的时间间隔自动执行。 实现这一功能通常涉及到以下几个关键技术点: 1. **定时器(Timer)**:...
在JavaScript中,`setInterval` 是一个非常重要的定时器函数,它允许我们在指定的时间间隔后重复执行某段代码。这个函数对于创建动态效果、轮询数据或者实现定时任务等场景非常有用。本篇文章将深入探讨`setInterval...
标题中提到的知识点是如何每隔5分钟执行一次AJAX请求,这是一个在前端JavaScript开发中常见的需求,主要用于实现定时更新服务器数据、定时轮询等。在JavaScript中,实现周期性任务通常有几种方法,这里主要涉及到的...
其次,定时任务执行是指在特定时间点或按照预定周期执行一段代码或操作。这在企业级应用中非常常见,例如备份数据库、清理日志文件或发送报告。Windows系统提供了任务计划程序,而Linux系统则有cron服务来实现这类...
总结起来,JavaScript的定时器是控制代码执行时间的关键工具,`setTimeout` 用于单次延迟执行,`setInterval` 用于周期性重复执行。了解并熟练掌握这两种定时器,能帮助开发者实现各种动态效果和自动化任务。在实际...
JavaScript定时器是编程中用于控制程序执行时机的重要工具,它们允许开发者在特定的时间间隔或延迟后执行特定的函数或任务。本文将详细讲解JavaScript中的两种主要定时器:`setInterval()` 和 `setTimeout()`,以及...
先看下面一段代码: DiGui = function (param) { $.ajax({ success: function (returnValue) { window.setInterval(fnSetMarkPoint(), 5000); } }); 调用DiGui()方法后 问题: 每隔0.1秒创建一个setInterval,成...
2. 定时器(Timer):定时器是编程中用来安排在未来某一时刻或每隔一段时间执行任务的工具。例如,`JavaScript`中的`setTimeout`和`setInterval`函数,Python的`time.sleep`或`threading.Timer`,Java的`java.util....
在本文中,我们将探讨如何使用JavaScript每隔两秒钟从数组中输出一项。这个实例演示了使用`setInterval`函数来实现定时任务,并在定时器触发时逐一从数组中取出值并显示。我们将深入理解相关的JavaScript概念,包括...
在JavaScript编程中,有时我们需要实现一个功能,使得手机端的活动弹窗每天只显示一次,以避免对用户造成过多的打扰。这个需求涉及到浏览器的本地存储(localStorage)以及JavaScript的时间和日期处理。以下是一个...
在网页中使用JavaScript实现每隔3秒弹出对话框的功能,主要涉及到JavaScript中用于处理时间的函数以及事件循环的机制。以下详细阐述了实现这一功能所需掌握的关键知识点。 首先,我们需要了解JavaScript中的全局...
这里我们将使用`setInterval`函数,每隔60000毫秒(即1分钟)执行一次切换图片的函数。同时,我们需要维护一个数组来存储所有图片的路径,以及一个变量来记录当前显示的图片索引: ```javascript var images = ['...
JavaScript中的延迟执行和定时执行是两个非常重要的概念,它们主要用于控制代码在特定时间点或周期性地运行。本文将深入探讨`setTimeout`和`setInterval`这两个关键函数,以及如何结合使用它们以实现更复杂的定时...
要实现每隔一段时间自动更换样式,需要使用到jQuery中的几个核心概念和方法,包括文档加载完毕事件、定时器、CSS类操作以及事件监听。 首先,文档加载完毕事件是让脚本在页面所有元素完全加载并解析完毕后执行的...
为了让时间动态更新,我们需要设置一个定时器,每隔一秒(1000毫秒)执行一次更新。可以使用`setInterval`函数来实现: ```javascript setInterval(function() { // 更新时间的代码 }, 1000); ``` 将前面获取和格式...
1. `setInterval` 函数:这是一个全局函数,用于每隔指定的时间(以毫秒计)执行一次回调函数。在这里,我们设置了1000毫秒(即1秒)执行一次函数。函数的字符串参数是一个表达式,即 `"jnkc.innerHTML=new Date()....
2. **定时刷新页面**:如果我们想要在一段时间后自动刷新页面,可以使用`setTimeout()`或`setInterval()`函数。`setTimeout()`用于一次性执行,而`setInterval()`则会在指定间隔反复执行。例如,每隔5秒刷新页面: ...
4. **定时器**:JavaScript的`setInterval()`函数可以设置一个定时任务,每隔指定的时间间隔执行一次回调函数,这样就可以在每段时间后改变文字颜色。 5. **颜色过渡**:如果希望颜色变化平滑,可以使用CSS3的`...