`
yangkai0332
  • 浏览: 10808 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JS定时任务封装

阅读更多
/**
 * 定时任务
 * 间隔时间,执行次数,要带的参数,要执行的函数.
 */
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();	//执行
分享到:
评论

相关推荐

    定时任务cron 解析为中文.docx

    《定时任务cron解析为中文》 在IT领域,特别是在服务器管理和自动化运维中,定时任务扮演着重要的角色。其中,cron表达式是Unix/Linux系统以及许多其他支持cron的平台用来定义定时任务的一种强大工具。然而,由于其...

    【前端定时器】cocos creator定时器封装可使定时任务不被UI线程暂停.zip

    【前端定时器】cocos creator定时器封装可使定时任务不被UI线程暂停.zip 【前端定时器】cocos creator定时器封装可使定时任务不被UI线程暂停.zip 因原生js 在切换页面,如手机app 显示桌面时,js线程被暂停,故...

    QD [v20240210] —— HTTP请求定时任务自动执行框架

    QD [v20240210] 是一个基于JavaScript编写的高效且灵活的HTTP请求定时任务自动执行框架。这个框架旨在帮助开发者实现定时执行HTTP请求的任务,以满足各种自动化需求,如数据抓取、系统监控、API测试等场景。它将HTTP...

    定时任务cron表达式讲述与组件封装

    该组件适用于react组件 如是vue框架 仅需参考修改即可

    windows下定时重启nodejs程序

    5. **测试和部署**:测试定时任务是否按预期工作,然后将其部署到生产环境,确保Node.js服务能够自动定时重启。 总之,通过结合Windows的计划任务、Python的控制能力、Node.js服务化工具以及批处理脚本,我们可以...

    jQuery动态图片定时切换.zip

    2. **定时器(setTimeout或setInterval)**:使用`setTimeout`或`setInterval`函数设置定时任务,实现图片的自动切换。`setTimeout`用于一次性执行,而`setInterval`则会周期性地执行。 3. **过渡效果**:jQuery的`...

    数字定时翻牌效果js代码

    3. **定时器(Timer)**:在JavaScript中,我们可以使用`setInterval`或`setTimeout`函数来实现定时执行某个任务的功能。在这个场景中,定时翻牌效果可能就是通过定时器每隔一定时间更新数字,达到实时滚动的效果。 ...

    Job Plus项目是基于SpringBoot+Vue的轻量级定时任务管理系统.zip

    "Job Plus项目是基于SpringBoot+Vue的轻量级定时任务管理系统"是一个融合了现代Web技术和后端服务架构的项目,旨在提供一个高效、易用的定时任务管理平台。SpringBoot是Spring框架的一个轻量级封装,简化了新Spring...

    微信网页版定时发送消息

    3. **定时任务实现**:JavaScript中的`setInterval`函数是实现定时任务的关键。它接受两个参数:一个函数和一个时间间隔(以毫秒为单位),每隔指定时间间隔就会执行该函数。通过编写特定的函数来发送微信消息,并...

    Node.js-每天大红包·最新饿了么红包接口Node.js封装

    5. **定时任务**:可能使用Node.js的定时器模块(如setTimeout、setInterval)或者第三方库cron来实现每天自动获取红包的逻辑。 6. **命令行工具**:可能提供一个命令行接口供用户执行,需要了解process.argv、...

    Node.js-用Handler封装的Bus方便使用

    例如,一个HTTP服务器可能使用HandlerBus来通知其他部分何时接收到新的请求,或者一个定时任务可能会发布事件来指示时间的更新。 总之,通过Handler封装的Bus,Node.js应用可以利用事件驱动模型来提高代码的灵活性...

    Node.js-Agenda一个用于Node.js的轻量级作业调度库

    Agenda是针对Node.js平台设计的一个轻量级的作业调度库,它允许开发者方便地创建、管理和执行定时任务。在Node.js应用中,有时我们需要在特定时间执行某些操作,如发送邮件、清理数据库或者进行数据备份,这时Agenda...

    国内外 JavaScript 经典封装.rar

    10. **时间日期处理**:JavaScript内置的Date对象可以用于处理日期和时间,例如格式化日期、计算时间差、设置定时任务等。 11. **JSON操作**:JSON是一种轻量级的数据交换格式,JavaScript提供了JSON.parse和JSON....

    Node.js-基于kue的egg延时队列

    通过编写Egg.js插件,我们可以将Kue的API封装起来,使得在Egg.js应用中添加、删除和查询延时任务变得更加便捷。以下是一些可能的步骤: 1. 安装依赖:在项目中安装`kue`和`egg-kue`,`egg-kue`是Egg.js的Kue插件。 ...

    vue-cron_vue-cron_vuecrond组件_vuecron_

    Vue-Cron是一款基于Vue.js开发的时间周期(Cron)表达式组件,用于在前端应用程序中创建、编辑和处理定时任务。Vue-Cron旨在提供一种直观的用户界面,让用户能够通过图形化的方式设置复杂的Cron表达式,从而实现定时...

    MQTT定时上报第三方系统

    4. **定时任务**:为了实现定时上报,我们需要使用某种调度机制来定期发送消息。这可能涉及到编程语言中的定时器库(如Python的APScheduler或Java的ScheduledExecutorService),或者使用MQTT客户端库提供的特定功能...

    JavaScript异步调用定时方法并停止该方法实现代码

    JavaScript作为一门被广泛使用的前端开发语言,提供了多种机制来处理异步操作,其中`setInterval`和`clearInterval`就是处理定时任务的两个核心函数。 在文件内容提供的示例代码中,我们看到了如何使用JavaScript...

    封装slider,jquery插件

    在IT行业中,jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互等任务。本教程将聚焦于如何封装一个基于jQuery的滑动插件,也就是"slider插件",这在网页设计中非常常见,...

    (uniapp框架)手动封装webview页面与App交互sdk

    总的来说,手动封装Webview与App交互SDK是一项涉及原生App开发、JavaScript编程以及事件通信等多个技术领域的任务。通过uniApp提供的API和组件,我们可以有效地实现在H5页面和App之间的数据交互,提升用户体验,同时...

    小而全的Java工具类库,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”

    hutool-cron 定时任务模块,提供类Crontab表达式的定时任务 hutool-crypto 加密解密模块,提供对称、非对称和摘要算法封装 hutool-db JDBC封装后的数据操作,基于ActiveRecord思想 hutool-dfa 基于DFA模型的多关键字...

Global site tag (gtag.js) - Google Analytics