AlarmObject

(function() {
	/**
	 *@description 和上次运行时间比对,超过interval则执行指定动作
	 *@class
	 */
	mars.AlarmObject = function(interval, run) {
		this.interval = interval;
		this.run = run;
		this.updateHistory = 0;
	}
	/**
	 *@description 和上次运行时间比对,超过interval则ajax取出datasource,ajax返回后执行run
	 */
	mars.AlarmObject.prototype.checkUpdate = function(now, datasource) {
		if(now - this.updateHistory < this.interval) return;
		else {
			this.update(datasource);
			this.updateHistory = now;
		}
	};
	/**
	 *@description 取出datasource,ajax返回后执行run
	 */
	mars.AlarmObject.prototype.update = function(datasource) {
		console.log(datasource);
		var fnCallback = this.run;
		$.getJSON(datasource, function(result) {
			fnCallback(result);
		});
	};
	/**
	 *@description 和上次运行时间比对,超过interval则执行run
	 */
	mars.AlarmObject.prototype.check = function(now) {
		if(now - this.updateHistory < this.interval) return;
		else {
			this.run();
			this.updateHistory = now;
		}
	};
})();


用法:

dataUpdater = new mars.AlarmObject(interval, this.callback.bind(this));
tick() {
	var now = Date.now()
	dataUpdater.checkUpdate(now, "http://ajax.data");
	//或者
	dataUpdater.check(now);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值