文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>javascript简单闹钟之实现...

javascript简单闹钟之实现...

时间:2010-08-08  来源:hello_wyq

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

简单闹钟实现程序如下:

<html> <head> <mce:script type="text/javascript"><!-- var timer_count = 0; var timer_is_on = false; var timer_id; function do_alarm() { document.getElementById( 'count' ).value = timer_count; ++ timer_count; } function do_timeout( timeout ) { do_alarm(); timer_id = setTimeout( "do_timeout( " + timeout + " )", timeout ); } function start_timer( timeout ) { if ( !timer_is_on ) { timer_window = window; timer_is_on = true; do_timeout( timeout ); } } function stop_timer() { if ( timer_is_on ) { clearTimeout( timer_id ); timer_is_on = true; timer_count = 0; } } // --></mce:script> </head> <body> <form> <input type="button" value="Start Timer!" onClick="start_timer( 1000 )"> <input type="button" value="Stop Timer" onClick="stop_timer()"> <input type="text" id="count"> </form> </body> </html>

从代码中我们可以看出:

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库的话,请最好使用它,毕竟自己写代码需要太多的时间和精力,又往往缺乏严格的测试,在关键的时候以最残酷的手段呈现在程序员面前。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载