/**
* 定时任务
* 间隔时间,执行次数,要带的参数,要执行的函数.
*/
var TimingTask = function(time,count,param,fun){
this.id = -1; //编号
this.exectionCount = 0; //执行了多少次
if(typeof time === 'function'){
this.fun = time;
this.time = 3000;
this.count = -1;
}else
if(typeof param === 'function'){
this.time = time;
this.count = count;
this.fun = param;
}else
if(typeof count === 'function'){
this.time = time*1000;
this.fun = count;
this.count = -1;
}else{
this.time = time*1000;
this.count = count;
this.param = param;
this.fun = fun;
}
}
TimingTask.prototype = {
add : function(time,count,fun){ //间隔秒数,执行次数,执行方法
if(typeof time === 'function'){
this.fun = time;
}else
if(typeof count === 'function'){
this.time = time;
this.fun = count;
}else{
this.time = time;
this.count = count;
this.fun = fun;
}
},
start : function(){
if(this.id === -1){ //说明还没开始
this.exectionCount = 0;
this.id = setInterval((function(param) {
return function() {
if(param.count > 0){
if(param.exectionCount >= param.count){
param.stop();
return;
}
}
param.exectionCount ++;
param.fun(param);
}
})(this), this.time);
}
},
stop : function(){
clearInterval(this.id);
this.id = -1;
}
}; //使用方法
var chart = {test:'testString'};
var change3D = new TimingTask(0.4,1,chart,function(chartObj){ //0.4秒后改回3D效果,执行1次就够了.
var chart = chartObj.param;
alert(chart.test); });
change3D.start(); //执行

参考文献:

[1].  JS定时任务封装 - - ITeye博客

 

javascript 定时任务封装的更多相关文章

  1. 2016/11/17 周四 <javascript的封装简单示例>

    这是一个简单的javascript代码封装的示例以及封装后的调用方法: var ticker={ n:0, add:function() { this.n++; }, show:function() ...

  2. 第一百三十五节,JavaScript,封装库--拖拽

    JavaScript,封装库--拖拽 封装库新增1个拖拽方法 /** tuo_zhuai()方法,将一个弹窗元素实现拖拽功能 * 注意:一般需要在css文件将元素里的某一个区块光标设置成提示可以拖拽, ...

  3. 第一百三十四节,JavaScript,封装库--遮罩锁屏

    JavaScript,封装库--遮罩锁屏 封装库新增1个方法 /** zhe_zhao_suo_ping()方法,将一个区块元素设置成遮罩锁屏区块 * 注意:一般需要在css文件将元素设置成隐藏 ** ...

  4. 第一百三十三节,JavaScript,封装库--弹出登录框

    JavaScript,封装库--弹出登录框 封装库,增加了两个方法 yuan_su_ju_zhong()方法,将获取到的区块元素居中到页面,chuang_kou_shi_jian()方法,浏览器窗口事 ...

  5. 第一百三十二节,JavaScript,封装库--下拉菜单

    JavaScript,封装库--下拉菜单 封装库,增加了3个方法 shu_biao_yi_ru_yi_chu()方法,给元素设置鼠标移入移出事件,接收两个参数,参数是移入和移出时的执行函数(包含代码) ...

  6. 第一百三十一节,JavaScript,封装库--CSS

    JavaScript,封装库--CSS 将封装库里的方法,改成了原型添加方法 增加4个方法 tian_jia_class()方法,给获取到的元素添加class属性,参数是class属性值,可以连缀1 ...

  7. 第一百三十节,JavaScript,封装库--连缀

    JavaScript,封装库--连缀 学习要点: 1.连缀介绍 2.改写库对象 本章我们重点来介绍,在调用库的时候,我们需要能够在前台调用的时候可以同时设置多个操作,比如设置CSS,设置innerHT ...

  8. Quartz定时任务封装

    一般的系统都会有一些定时任务,那么我们将这个定时任务封装起来,只要系统需要添加定时任务时,只需调用此方法传入所需要的值即可完成定时任务.  自己自学整理的一些随笔 1.首先对周期粒度进行封装 publ ...

  9. Openlayer3之C++接口在javaScript的封装使用

    0.写在前面: 1)涉及的关键词定义: 传入:JavaScript向CAPI传值 传出:CAPI向JavaScript传值 2)关于类和结构体的封装,需要严格执行内存对齐,以防止读取越界,但是避免不了 ...

随机推荐

  1. 安装sql server 2008重启失败

    sql server2008安装时提示重启计算机失败怎么办   安装SQL Server 2008时,经常会遇到这样一个问题,软件提示“重启计算机失败”,如果忽略的话,会给后面的安装带来很大的麻烦,这 ...

  2. POJ - 2965 The Pilots Brothers' refrigerator(压位+bfs)

    The game “The Pilots Brothers: following the stripy elephant” has a quest where a player needs to op ...

  3. MongoDB整理笔记の性能监控

    方法一:Mongostat 此工具可以快速查看某组运行中的mongodb实例的统计信息,用法如下: [root@localhost bin]# ./mongostat insert query upd ...

  4. 匿名函数和lamda表达式

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  5. Java集合类总结 (四)

    PriorityQueue类 优先队列不管你按照什么顺序插入元素,出队列的时候元素都是按顺序输出的.也就是每次调用remove的时候,都返回当前队列中最小的元素.然后队列中的元素不是维持排序状态的,如 ...

  6. angular resolve路由

    import { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from "@angular/router&q ...

  7. 《Thinking in Java》 10~

    chapter 10 内部类(P191) 创建内部类 链接到外部类 内部类能访问器外围对象的所有成员,而不需要任何特殊条件. 使用.this与.new package cn.test; public ...

  8. windows如何通过端口查看对应程序

    今天打开SSR报错,说端口被占用. 打开的软件有点多,又不想重启.就需要找到占用的软件,关闭了即可. 打开cmd,输入netstat -aon能看到所有的使用端口 其中1080端口是预留给SSR使用的 ...

  9. 【转】分析.net中的object sender与EventArgs e

    源地址:http://blog.csdn.net/feihu19851111/article/details/7523118

  10. C# Winform下一个热插拔的MIS/MRP/ERP框架12(数据处理基类)

    作为ERP等数据应用程序,数据库的处理是重中之重. 在框架中,我封装了一个数据库的基类,在每个模组启动或窗体启动过程中,实例化一个基类即可调用CRUD操作(create 添加read读取 update ...