一种校正计时器时间误差的方法及装置制造方法及图纸

技术编号:15517975 阅读:135 留言:0更新日期:2017-06-04 08:22
本发明专利技术公开了一种校正计时器时间误差的方法及装置。该方法包括:接收服务器下发的业务的剩余时间;调用本地计时器按照所述剩余时间开始倒计时;在倒计时结束之前,每隔预设的计时周期,计算所述计时周期相对于本地时钟周期之间的时间误差;将所述时间误差补偿到当前的剩余时间,在下一个计时周期按照所述当前的剩余时间继续倒计时。采用本发明专利技术,能够满足很好的用户体验的同时,确保不增加服务器的压力或者其他成本的前提下纠正误差。

【技术实现步骤摘要】
一种校正计时器时间误差的方法及装置
本专利技术涉及误差校正的
,更具体地,涉及一种校正计时器时间误差的方法及装置。
技术介绍
现有技术当中,在Web实现一个计时器精确到秒的需求很常见,它可以用JavaScript计时事件setTimeout或者window对象实现定时调用的函数setInterval两种方法实现。但是无论是setTimeout还是setInterval每个时间间隔内都会存在一定的时间误差,如果要实现累积计时,就会随着计时时间越久,每个间隔产生的误差被不断累积导致误差不断被放大,从而导致不同设备的不同时段的时差达到十几秒甚至更多,过大的时间误差会有用户报故障,导致用户看到的UI展示计时结果不一致,用户体验效果极差。以用户的直播客户端的任务条上的剩余时间倒计时计时器为例,用户进直播频道是一个单播的行为,即服务器端会向所有进入直播频道的客户端推送直播数据。直播客户端作为一个被动接受数据方,前端展示倒计时要通过JavaScript实现倒计时,一个用户进频道,直播客户端接收到服务器单播过来的计时点数据,从计时点开始倒计时计时器,记录本次循环开始的时刻T1,在计时器每次展示计时结果之后,记录下次循环开始的时刻T2。如果在下次计时器展示结果之前,计算两次循环时间差(T2-T1),理论上T2-T1=1000毫秒,实际可能是1002,1000,1001,999毫秒等,存在1-2毫秒的误差。特别是,根据我们对基于setInterval技术的计时器进行测算,每一秒基于setInterval产生的误差会可以高达5毫秒,即每经过1000秒,计时器的展示结果误差会达到1至5秒。由此可见,现有技术的客户端计时器存在难以预测的误差,而且这种误差会像滚雪球那样,随着时间的累计而越来越大,对于现场直播或其他对时间精度要求比较高的业务来说,这样的误差有可能导致相关联的业务瘫痪。
技术实现思路
鉴于上述问题,本专利技术提出了一种校正计时器时间误差的方法及装置,能够满足很好的用户体验的同时,确保不增加服务器的压力或者其他成本的前提下纠正误差。本专利技术实施例中提供了一种校正计时器时间误差的方法,包括:接收服务器下发的业务的剩余时间;调用本地计时器按照所述剩余时间开始倒计时;在倒计时结束之前,每隔预设的计时周期,计算所述计时周期相对于本地时钟周期之间的时间误差;将所述时间误差补偿到当前的剩余时间,在下一个计时周期按照所述当前的剩余时间继续倒计时。优选地,所述计时周期不超过1秒。优选地,所述计时周期不超过0.5秒。优选地,所述将所述时间误差补偿到当前的剩余时间的步骤,具体包括:从本次计时周期起,累计每个计时周期的时间误差;当累计的时间误差超过计量阈值时,将该累计的时间误差补偿到当前的剩余时间;从下一个计时周期起,再重新累计所述时间误差。优选地,还包括:在所述倒计时结束之前,显示所述业务当前的剩余时间。优选地,显示所述业务当前的剩余时间的步骤,具体包括:按照预设的时间格式,显示所述业务当前的剩余时间的取整值。相应地,本专利技术实施例提供了一种校正计时器时间误差的装置,包括:数据接收单元,用于接收服务器下发的业务的剩余时间;计时启动单元,用于调用本地计时器按照所述剩余时间开始倒计时;误差计算单元,用于在倒计时结束之前,每隔预设的计时周期,计算所述计时周期相对于本地时钟周期之间的时间误差;误差补偿单元,用于将所述时间误差补偿到当前的剩余时间,在下一个计时周期按照所述当前的剩余时间继续倒计时。优选地,所述计时周期不超过1秒;或,所述计时周期不超过0.5秒。优选地,所述误差补偿单元,具体包括:误差累计单元,用于从本次计时周期起,累计每个计时周期的时间误差;当累计的时间误差超过计量阈值时,将该累计的时间误差补偿到当前的剩余时间;从下一个计时周期起,再重新累计所述时间误差。优选地,还包括:时间显示单元,用于在所述倒计时结束之前,显示所述业务当前的剩余时间,或,用于按照预设的时间格式,显示所述业务当前的剩余时间的取整值。相对于现有技术,本专利技术提供的方案,首先,接收服务器下发的业务的剩余时间,以直播为例,用户通过客户端进直播频道,服务器端会向所有进入直播频道的客户端推送直播数据,其中包含业务的剩余时间,所述业务比如是针对直播间观众的限时游戏。用户客户端调用本地计时器按照所述剩余时间开始倒计时;所述计时器可以通过setTimeout与setInterval这两种方法实现,但是现有的这些计时器均存在不同程度的误差,或是跑快或是跑慢了,这种误差虽然是毫秒级别的,但如果任由这种误差随着时间放大,将导致业务的瘫痪,例如用户因为计时器跑慢了,误以为限时游戏还在进行中,点击参与之后才发现游戏早已结束,影响用户体验。如果计时器依赖于服务器重新下发剩余时间,重新开始倒计时,显然此前的误差可以消除,计时器将重新开始误差的滚雪球。这样不但没有根本解决问题,而且还增加了服务器的压力,是一种饮鸩止渴的方法。与此不同,本方案在倒计时结束之前,每隔预设的计时周期,计算所述计时周期相对于本地时钟周期之间的时间误差;由各个客户端依靠各自本地的时钟作为参考,结合计时器的计时周期对误差进行调整,能够实现不同客户端的误差校正,将所述时间误差补偿到当前的剩余时间,在下一个计时周期按照所述当前的剩余时间继续倒计时,防范于未然。从而能够满足很好的用户体验的同时,确保不增加服务器的压力或者其他成本的前提下纠正误差。本专利技术附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术的误差校正方法示意图。图2为本专利技术一种校正计时器时间误差的方法的流程图。图3为本专利技术一种校正计时器时间误差的方法的第一实施例流程图。图4为本专利技术第一实施例示意图。图5为本专利技术第一实施例效果图。图6为本专利技术一种校正计时器时间误差的装置的示意图。图7为本专利技术一种校正计时器时间误差的方法的实施例流程图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。在本专利技术的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本本文档来自技高网
...
一种校正计时器时间误差的方法及装置

【技术保护点】
一种校正计时器时间误差的方法,其特征在于,包括:接收服务器下发的业务的剩余时间;调用本地计时器按照所述剩余时间开始倒计时;在倒计时结束之前,每隔预设的计时周期,计算所述计时周期相对于本地时钟周期之间的时间误差;将所述时间误差补偿到当前的剩余时间,在下一个计时周期按照所述当前的剩余时间继续倒计时。

【技术特征摘要】
1.一种校正计时器时间误差的方法,其特征在于,包括:接收服务器下发的业务的剩余时间;调用本地计时器按照所述剩余时间开始倒计时;在倒计时结束之前,每隔预设的计时周期,计算所述计时周期相对于本地时钟周期之间的时间误差;将所述时间误差补偿到当前的剩余时间,在下一个计时周期按照所述当前的剩余时间继续倒计时。2.根据权利要求1所述的校正计时器时间误差的方法,其特征在于:所述计时周期不超过1秒。3.根据权利要求1所述的校正计时器时间误差的方法,其特征在于:所述计时周期不超过0.5秒。4.根据权利要求1所述的校正计时器时间误差的方法,其特征在于,所述将所述时间误差补偿到当前的剩余时间的步骤,具体包括:从本次计时周期起,累计每个计时周期的时间误差;当累计的时间误差超过计量阈值时,将该累计的时间误差补偿到当前的剩余时间;从下一个计时周期起,再重新累计所述时间误差。5.根据权利要求1-4任一项所述的校正计时器时间误差的方法,其特征在于,还包括:在所述倒计时结束之前,显示所述业务当前的剩余时间。6.根据权利要求5所述的校正计时器时间误差的方法,其特征在于,显示所述业务当前的剩余时间的步骤,具体包括:按照预设的时间...

【专利技术属性】
技术研发人员:李芬
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1