延时重复执行函数 lLoopRun.js_javascript技巧

公司的一个项目中,有许多地方需要延时执行一些可重复性的函数(动作),就写了下面这段函数。
呵呵,不知道取什么意思更为确切些,就定为了:LoopRun,意为“重复执行” 
function lLoopRun(sFuncLoop,sFuncEnd,nDelay) {
  var vintervalId = null;
  var runString  = sFuncLoop;
  var stopString  = sFuncEnd;
  var delayTime  = nDelay;
  //var nCount = 0;
  this._doLoop = function (){
    if (vintervalId && !eval(stopString)){
      eval(runString);
      //nCount++;
    } else {
      window.clearInterval(vintervalId);
      vintervalId = null;
    }
  }
  window.clearInterval(vintervalId);
  vintervalId = window.setInterval(this._doLoop,delayTime);
}

参数说明:
sFuncLoop >> 字符串型,需要重复执行的Javascript函数或语句(多个函数或语句请用;分隔)
sFuncEnd >> 字符串型,用于中止重复执行动作(sFuncLoop)的Javascript函数或语句
nDelay >> 数字型,重复执行的时间间隔(毫秒数)
应用实例:
水平往复运动: http://cnlei.iecn.net/mycode/lLoopRun/index.html
自动伸缩大小: http://cnlei.iecn.net/mycode/lLoopRun/index2.html
垂直往复运动: http://cnlei.iecn.net/mycode/lLoopRun/index3.html
渐变显示(图片): http://cnlei.iecn.net/mycode/lLoopRun/index4.html

以上只是几个简单的应用实例,具体应用时关键还得看sFuncLoop和sFuncEnd这两个参数所代表的函数写得是否好,例如给实例一中的运动图片加上缓冲运行的效果的话,就需要在sFuncLoop所代表的函数中加上相应的实现代码:)

时间: 2024-05-09 04:03:42

延时重复执行函数 lLoopRun.js_javascript技巧的相关文章

javascript延时重复执行函数 lLoopRun.js_javascript技巧

function lLoopRun(sFuncLoop,sFuncEnd,nDelay) { //writen by http://fengyan.iecn.cn //sFuncLoop >> 字符串型需要重复执行的Javascript函数或语句多个函数或语句请用;分隔   //sFuncEnd >> 字符串型用于中止重复执行动作sFuncLoop的Javascript函数或语句  //nDelay >> 数字型重复执行的时间间隔毫秒数   var vintervalI

JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案_javascript技巧

一个简单的利用正则判断输入是否为数字: input1 = '0281234567';input2 = '0282345678';var reg = /^\d+$/g; reg.test(input1); //true reg.test(input2); //false 发现第二次test的时候返回的值不对了.排除书写错误,取值失败等等各种干扰因素后,发现仅仅是reg正则第二次执行的时候就无法正确执行了.之前并未遇到过这个问题,便搜索了一下相关信息. 原来这个问题实际上是/g导致的,而此时也才发现

ASP 过滤数组重复数据函数(加强版)_javascript技巧

函数代码: 复制代码 代码如下: <%'******************************************************* '过滤数组重复函数名称:array_no(cxstr1,cxstr2,cxstr3) 'cxstr1:任意的字符串,自动识别 'cxstr2:cxstr1中分割符号. 'cxstr3:提取结果中的某一位置字串,等于0时返回为全部,大于数组下标时返回最后. '使用于二维数组 '************************************

JavaScript避免代码的重复执行经验技巧分享_javascript技巧

我喜欢到一些大型网站上去翻阅它们的原代码,期望能找到一些可以应用到自己的代码中的模式,或发现一些之前从未听说过的工具和技巧.可是,在我查看这些大型网站的源代码时,经常会发现一个问题,那就是重复的代码执行,重复的功能应用.下面就是一些在查看它们的源代码时发现一些问题,把这些分享给大家,希望能让你们更加简洁高效的写出JavaScript代码. 重复的收集元素 我在他们的JavaScript代码里看到的最常见的问题是重复的收集元素.虽然jQuery选择器引擎或querySelectorAll的执行速度

js定时器(执行一次、重复执行)_javascript技巧

1,只执行一次的定时器 复制代码 代码如下: <script> //定时器 异步运行 function hello(){ alert("hello"); } //使用方法名字执行方法 var t1 = window.setTimeout(hello,1000); var t2 = window.setTimeout("hello()",3000);//使用字符串执行方法 window.clearTimeout(t1);//去掉定时器 </scrip

js只执行1次的函数示例_javascript技巧

在我们日常开发的时候,经常会碰到一种这样的情况:想让某个函数只执行一次,特别是在一些循环或定时执行的时候. 废话不多说,直接上代码: function runOnce(fn, context) { //控制让函数只触发一次 return function () { try { fn.apply(context || this, arguments); } catch (e) { console.error(e);//一般可以注释掉这行 } finally { fn = null; } } } /

javascript函数自动执行常用方法汇总_javascript技巧

在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: <SCRIPT LANGUAGE="JavaScript"> functionn MyAutoRun() { //以下是您的函数的代码,请自行修改先! alert("函数自动执行哦!"); } </SCRIPT> 下面,我们就针对上面的函数,让其在网页载入的时候自动运行! ①第一种方法 将如上代码改为: <SCRIPT LANGUAGE="Jav

setTimeout函数兼容各主流浏览器运行执行效果实例_javascript技巧

目前这个setTimeout可以很好地兼容IE6,7,8,9以及谷歌浏览器Chrome,火狐浏览器FireFox,苹果浏览器Safari,Opera. setTimeout是一个很不错的函数,网站页面前端工程师经常将其用于几秒后执行的动作.setTimeout这个JS内置函数其用法也很简单,下面是setTimeout()的函数说明以及用法详解和实例.示例代码: setTimeout()的作用是指定在多少毫秒后执行一个JS函数或者表达式代码 setTimeout的用法.语法.参数:setTimeo

浅析javascript异步执行函数导致的变量变化问题解决思路_javascript技巧

浅析javascript异步执行函数导致的变量变化问题解决思路 for(var i=0;i<3;i++) { setTimeout(function(){ console.log(i) },0); } 控制台输出: 3 3 3 这是因为执行方法的时候for循环已经执行完成每次执行的时候取得都是3 而不是1-2-3这时我们可以使用立即执行函数为每一次循环创建一个变量副本来供定时器调用解决这个问题 for (var i = 0; i < 3; i++) { setTimeout( (functio