Javascript简单闹钟之实现

前两天有一个朋友问我如何使用JavaScript实现闹钟,本以为很简单,有现成的函数可以使用,但是发现现成的闹钟函数setTimeout()仅仅提供一次定时能力,而朋友需要多次的重复定时。这种需求其实在现实生活中非常的常见,具有广泛的需求。无奈之下,只能自己动手写一个简单的闹钟啦。

 

简单闹钟实现程序如下:

 

从代码中我们可以看出:

1)start_timer()和stop_timer()是timer两个r的控制函数。timeout参数主要用于如何设置超时间隔,已微妙(milliseconds)为单位。

2)do_timeout()函数主要是通知定时时间已到,并设置下一轮定时时间。

3)do_alarm()是用户需要执行的代码。在代码中,我们演示了一个定时计数的小小功能一边用户有一个直观的观察。

 

它的一个主要缺点是无法支持多个闹钟。在实际应用中,它的局限性非常的大,因为复杂的应用对于支持多闹钟是非常常见的运用。如何才能实现呢?

1)需要对start_timer和stop_timer进行改动,提供返回不同timer的标识。根据这种标识,应用能够动态的控制闹钟的开始和停止。

2)需要提供timer列表,维护不同的timer。

 

因为上述代码框架已经比较好的考虑到这点,相信喜欢专研的网友一定能够比较容易的实现多闹钟的情况。在多闹钟的实现中,需要注意的是如何维护timer列表的一致性,比如在alarm的时候如何克服用户删除操作的影响,如何保证同步等等。

 

 

【小结】

- JavaScript提供了简单的闹钟函数setTimeout(),但是它具有局限性(只能定时一次)。

- 本篇文章中提供方案仅仅是一个简单的闹钟,对于复杂需求也是无能为力的,之所以没有提供一个完备的闹钟实现,主要是已经满足朋友的需求,而无动力再次去完善啦:-)。

- 如果有现成的强大JavaScript库的话,请最好使用它,毕竟自己写代码需要太多的时间和精力,又往往缺乏严格的测试,在关键的时候以最残酷的手段呈现在程序员面前。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值