JavaScript延迟重复执行函数lLoopRun.js详解与示例

0 下载量 50 浏览量 更新于2024-08-30 收藏 40KB PDF 举报
"javascript延时重复执行函数lLoopRun.js是一个JavaScript函数,用于实现定时、重复执行指定的函数或语句,并提供了停止条件。由http://fengyan.iecn.cn编写,函数接受三个参数:sFuncLoop(需要重复执行的函数或语句字符串),sFuncEnd(用于终止重复执行的函数或语句字符串),nDelay(执行间隔时间,单位为毫秒)。该函数通过eval函数动态执行传入的字符串,同时提供了停止条件的检查。在实例中,展示了如何使用lLoopRun.js实现一个元素的水平往复运动效果。" `lLoopRun.js`函数的工作原理和使用方法: 1. **函数参数解析**: - `sFuncLoop`:这个参数是一个字符串,包含需要重复执行的JavaScript函数或语句,多个函数或语句之间用分号`;`分隔。例如,`"func1();func2()"`表示先执行`func1()`,然后执行`func2()`。 - `sFuncEnd`:这是一个字符串,定义了一个函数或语句,当该函数或语句的结果为真时,会停止`sFuncLoop`中的函数或语句的执行。 - `nDelay`:定义了两次执行之间的延迟时间,单位是毫秒。例如,设置为1000意味着每1秒钟执行一次。 2. **函数内部逻辑**: - 使用`var vintervalId = null`来初始化一个变量,用于存储`setInterval`返回的ID,以便稍后清除定时器。 - `var runString`和`var stopString`分别存储`sFuncLoop`和`sFuncEnd`的值。 - `var delayTime`保存`nDelay`的值。 - `_doLoop`是一个内部函数,它包含了实际的执行逻辑。在每次调用时,它首先检查`vintervalId`是否已设置以及`stopString`的eval结果是否为假。如果两者都满足,那么`runString`中的函数或语句会被执行。否则,使用`clearInterval`清除定时器并重置`vintervalId`为`null`。 3. **实例应用**: - 在提供的实例中,`lLoopRun.js`被用于实现一个HTML元素(如`#IECN`)的水平往复运动。这通常涉及到改变元素的CSS属性,如`left`或`transform`,来模拟移动效果。 - 示例代码可能包括定义CSS样式,设置元素的位置,然后使用`lLoopRun.js`启动一个定时器,使得元素在特定时间内向左或向右移动一定距离,并在到达边界时改变方向。 4. **注意事项**: - 使用`eval`函数是危险的,因为它允许执行任意JavaScript代码,可能导致安全问题。在实际项目中,应尽可能避免使用`eval`,或者确保传递的字符串仅包含可信的代码。 - 为了测试,代码中有一些行被注释掉了,例如`nCount`变量用于记录执行次数,以及在页面上显示执行次数的功能。这些功能在实际应用中可以按需启用。 5. **拓展应用**: - 可以根据需求扩展`lLoopRun.js`,例如添加更多的控制选项,如执行次数限制、错误处理等。 - 除了动画,`lLoopRun.js`还可以应用于数据轮询、定时任务执行、实时更新界面等多种场景。 `lLoopRun.js`是一个简单的JavaScript工具,用于实现带延时和停止条件的循环执行,对于需要周期性执行操作的场景非常有用,但需要注意其安全性和性能优化。