具体实施方式
下面将参照附图更加详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了解决网页计时不准确的问题,本发明实施例提供了一种网页计时的方法,如图1所示,该方法包括:
101、在页面切换到后台时,获取页面中任务的中止计时时长。
通常情况下,当用户在页面上需要执行某些任务的时候,例如进行信息注册或者进行网银支付时,这些任务都会有时间限制。如果在时间期限内能够实施注册或者支付的过程,则网络侧会接收注册或者支付的相应信息,从而完成任务。对于超过了时间限制提交的任务信息,网络侧会拒绝接收这些信息,该任务失效。对于这些有时间限制的任务来说,浏览器通常都会对执行任务的页面进行计时,如果计时超过了任务的时间限制,则页面会自动关闭相应的任务。此时,即使提交的信息正确,网络侧也不会接受提交的信息,用户必须再次打开页面或者对页面进行刷新后重新填写并提交任务的信息,同时页面开始重新计时。
在执行任务的过程中,任务页面常常会被切换到后台。例如,在填写任务相应信息的过程中,常常需要填写验证码或实时密码。这些验证码或实时密码通常由服务商或运营商发送给用户,用户接收并正确填写验证码或实时密码后才能完成任务信息的提交。在这个过程中,当用户查看验证码或实时密码时,会将任务页面切换到后台,调取接收验证码或实时密码的页面或者窗口。或者,在执行任务的过程中,用户收到新来电或新短信时,接听来电或查看短信都会将任务页面切换到后台。
对于相当一部分的基于页面时间限制的任务来说,该时间限制的起点可以是任务页面被打开的时刻,也可以是填写信息的时刻。无论哪种方式作为时间限制的起点,对于绝大多数情况来说,在任务页面被切换到后台前,该任务已经运行了一段时间,这段时间即步骤101中在页面切换到后台时,页面中任务的中止计时时长。该中止计时时长是任务限制时间中的一部分,同时也是与网络侧计时同步的任务实际运行时间的一部分。
102、在页面从后台切换到前台时,获取页面的后台计时时长。
从任务开始执行的起算时刻到任务页面被切换到后台,这段时间就是步骤101中的中止计时时长。现有的网页计时方法是基于浏览器层面开发的,其只有在前台运行时才能够获取网络侧的时间进行计时。在任务页面被切换到后台之后,任务页面由于没有相应的权限而无法获取到网络侧的时间,从而无法根据网络侧的时间对页面任务进行计时。当任务页面从后台切换到前台时,页面继续计时的时间就无法与网络侧的计时时间同步,因此用户看到的页面显示的计时时间就是滞后的时间,任务实际运行的时间很可能已经超过了任务的时间限制,而用户并不知情。用户根据滞后的任务计时时间进行操作,很可能会造成任务失效,执行无用的操作步骤。
在页面切换的情况下,页面计时产生的运行时间就会缺失后台运行的时间,为了使页面计时与网络侧计时同步,即与任务实际运行的时间相同,就需要获得页面在后台运行的时间。由于页面处于后台运行时,没有权限实时获取网络侧的时间,因此其后台运行时间就需要通过其他方式获得。在获取后台运行时间的方式上,可以选择类似秒表或时钟的实时计时方式,也可以选择数学运算的方法获得后台运行时间。
103、将中止计时时长与后台计时时长相加,获得任务的实际计时时长。
当任务经过了步骤101和步骤102,即任务实际的运行经过了页面切换到后台前的中止计时时间和页面切换到后台运行的后台运行时间,这两段时间都是任务限制时间的一部分。该任务限制时间不是以任务页面计时为准,而是独立于任务页面计时,按照网络侧时间计时的。无论任务页面处于前台还是处于后台,任务限制时间都是按照网络侧时间计时,因此为了使任务页面计时与任务限制时间的计时同步,就需要将页面切换到后台前的中止计时时间和页面切换到后台运行的后台运行时间相加,它们的时间之和才与网络侧计时得到的任务实际运行时间同步。
104、从实际计时时长起,对任务继续进行计时。
在任务页面处于后台运行的过程中,如果任务没有到时,任务从后台切换到前台后,页面又可以获得网络侧的时间。因此,页面可以根据步骤103获得的任务实际运行的计时时长,按照网络侧的时间继续计时。这样的计时能真正反映出任务在限制时间内已运行的时间,即使页面处于后台无法获得网络侧的时间进行计时,也能够通过步骤101、步骤102及步骤103得到与网络侧计时同步的任务实际运行时间。
在任务页面处于后台运行的过程中,如果任务已经到时,则任务页面失效。当任务页面从后台被切换到前台后,在此页面执行任务已经没有意义。这时,可以选择在任务页面弹出“页面失效”或“任务超时”的窗口,告知用户无需在该页面继续执行任务,从而使用户再次打开任务页面或对任务页面进行刷新后重新执行任务。对于任务页面处于后台运行过程中到时的情况,其切换到前台的方式可以选择在任务到时后自动切换到前台,也可以选择以被动的方式切换到前台,即等待用户将任务页面从后台切换到前台。无论以哪种方式将任务页面切换到前台,都需要重新执行任务。当重新执行任务后,其任务限制时间也重新开始计时。
本发明实施例提供的网页计时的方法,根据分别获取的页面从前台切换到后台时的中止计时时长以及从后台切换到前台时的后台计时时长,得到页面运行的实际时间。与现有技术相比,本发明能够使页面不论处于前台还是后台都能够准确的对页面的实际运行时间进行计时,使页面的计时与网络侧的计时保持同步。
进一步的,作为对上述实施例的细化和扩展,在执行步骤102中获取页面的后台计时时长时,作为一种可选的实施方式,可以在页面切换到后台时,向网络侧获取第一时刻值;在页面从后台切换到前台时,向网络侧获取第二时刻值;将第二时刻值与第一时刻值相减,获得后台计时时长。这种根据页面切换到后台时的网络侧时刻值与页面切换回前台时的网络侧时刻值进行计算得到的时间段,代表了页面在后台的真实运行时间,其与根据网络侧时间对页面处于后台运行的过程进行计时得到的任务运行时间相同。
在上述向网络侧获取第一时刻值和向网络侧获取第二时刻值的过程中,可以在页面切换到后台之前,页面向网络侧实时请求系统时钟,在页面切换到后台时,读取当前时刻上向网络侧请求的系统时钟,获得网络侧的第一时刻值;页面在后台运行的过程中,页面无法向网络侧实时请求系统时钟,只有在页面从后台切换到前台时,才能读取当前时刻上向网络侧请求的系统时钟,获得网络侧的第二时刻值,此后可以继续实时请求系统时钟,直至再次切换到后台运行。
这里需要说明的是,读取的网络侧的第一时刻值与第二时刻值除了用于计算出页面在后台运行的时间,还可以进行本地保存,本地保存的时刻值作为页面运行状态的历史记录,可以被网络侧随时调取,供网络侧分析出页面运行过程中的前后台切换情况,方便网络侧根据页面的历史运行状态执行相应的操作。或者,也可以选择只在页面切换到后台时,以及只在页面从后台切换到前台时,才向网络侧请求系统时钟,获得第一时刻值和第二时刻值。同样的,对于获得的第一时刻值和第二时刻值也可以进行本地保存。
在执行步骤102获取页面的后台计时时长中,作为另一种可选的实施方式,也可以选择对页面处于后台运行的整个过程进行计时,这里所说的计时不是根据网络侧的时间进行计时,而是独立于网络侧的时间进行的后台本地计时。后台本地计时的过程是在页面切换到后台时,启动本地计时,在页面从后台切换到前台时,结束本地计时,对这个时间段进行计时得到的后台计时时长就是页面后台运行的时长。由于页面在进行后台计时的过程中,页面无法获得网络侧的时间,因此其后台计时的起算时刻并没有一个基准时刻,这时就可以在启动本地计时时以数值0作为起算时刻,可以以毫秒或秒为单位进行计时,在结束本地计时时的时刻就是页面在后台运行的时长。例如,结束本地计时的时刻是120秒,这说明页面在后台运行了120秒。如果对应于现有技术,则现有技术中的页面计时在切换到前台后继续计时就会缺失这120秒。
页面在后台运行的过程中,任务在限制时间内的剩余时间逐渐减少。页面有可能在后台运行的过程中任务已经到时,也有可能在页面切换到前台后,经过一段时间任务才到时。针对不同的任务到时的情况,可以选择不同的实施方式。
在页面处于后台运行的过程中,后台的本地计时一直在进行,执行任务的剩余时间逐渐减小而页面没有被切换到前台时,可以选择在任务到时前的预设时刻将页面自动切换到前台,并进行任务提示。这里所说的预设时刻可以根据页面在切换到后台之前任务已经运行的时间、任务的限制时间以及默认的任务预警剩余时间计算得到。示例性的,如果页面在切换到后台时任务已经运行了10分钟(中止计时时长10分钟)、任务的限制时间为40分钟、默认的任务预警剩余时间为5分钟。则根据任务的限制时间40分钟和页面在切换到后台时已经运行的10分钟,可以算出任务在后台最多能运行30分钟,再结合默认的任务预警剩余时间5分钟,可以算出页面在后台从0时刻开始运行25分钟后需要进行预警,这里的25分钟就对应任务到时前的预设时刻的时刻值25,在此时刻页面会被自动切换到前台并进行任务提示,告知用户还有5分钟任务就要超时。
这里需要说明的是,在任务限制时间和默认的任务预警剩余时间固定的情况下,任务到时前的预设时刻随着页面在切换到后台时任务已经运行的时间而变化,页面在切换到后台时任务已经运行的时间越长,任务到时前的预设时刻越小。任务限制时间和默认的任务预警剩余时间都是编辑页面之初设定的,也可以进行编辑重新设定。
在上述设置任务到时前的预设时刻的实施方式,不存在页面处于后台的运行过程中任务超时的现象。如果不采用上述实施方式,则会出现任务在页面后台运行的过程中到时的情况。针对这种情况,可以在页面从后台切换到前台后,重新向网络侧请求任务。在具体的实施过程中,当任务在后台到时后,可以选择如上述步骤104所述的不同切换方式将页面从后台切换到前台,此处不再赘述。其中,重新向网络侧请求任务可以有不同的实施方式。例如,在将页面切换到前台时可以选择将页面直接关闭并打开新的页面,也可以选择自动将页面进行刷新,使页面状态初始化。打开新的页面和刷新页面的实施方式,清除了之前的任务操作,可以重新执行任务,相应的任务计时也重新开始。
由于传统的网页计时无法在后台运行的过程中获取网络侧的时间,网络侧也无法获取页面前后台切换的事件。为了使网络侧能够根据页面的前后台切换状况触发相应的操作,对任务进行调控。在上述实施过程中,可以选择将页面切换到后台时的时刻值和/或页面从后台切换到前台时的时刻值上报给网络侧。网络侧根据不同的时刻值可以判断出页面前后台的切换状态。
这里所说的页面切换到后台时的时刻值是对应于网络侧的时刻值,也就是上述步骤102中的一种实施方式提到的在页面切换到后台时,向网络侧获取的第一时刻值。同样的,页面从后台切换到前台时的时刻值,也是上述步骤102中的一种实施方式提到的在页面从后台切换到前台时,向网络侧获取的第二时刻值。网络侧根据上报的时刻值可以判断出页面何时切换到后台、在后台运行了多长时间以及何时切换回前台等页面运行状况,从而指示页面继续完成或重新执行一些任务操作,还可以根据页面前后台切换的规律分析出页面的切换是故障原因还是人为操作原因,进而对有时间限制的任务页面的设置进行改进。
本发明实施例采用后台本地计时的方式,不仅能获得后台运行的时间,而且还能通过预设时刻的方式在任务到时前将页面切换到前台,避免用户操作不及时而造成任务到时的情况发生。同时,页面本地保存前后台切换时的时刻或页面向网络侧上报前后台切换时的时刻,都能够使网络侧获得页面运行的状况,从而对网页进行任务指示或改进。
进一步的,作为对上述方法的实现,本发明实施例还提供了一种网页计时的装置,该装置位于页面中,用以实现上述实施例提供的不同实施方式所示的方法。如图2所示,该装置包括:获取单元21、处理单元22以及计时单元23,其中,
获取单元21,用于在页面切换到后台时,获取页面中任务的中止计时时长,该获取单元21还用于在页面从后台切换到前台时,获取页面的后台计时时长;
处理单元22,用于将获取单元21获取的中止计时时长与获取单元21获取的后台计时时长相加,获得任务的实际计时时长;
计时单元23,用于从处理单元22获得的实际计时时长起,对任务继续进行计时。
进一步的,获取单元21用于在页面切换到后台时,向网络侧获取第一时刻值;
该获取单元21还用于在页面从后台切换到前台时,向网络侧获取第二时刻值;
处理单元22用于将获取单元21获取的第二时刻值与获取单元21获取的第一时刻值相减,获得后台计时时长。
进一步的,如图3所示,获取单元21包括:
第一请求模块211,用于向网络侧实时请求系统时钟;
读取模块212,用于在页面切换到后台时,读取当前时刻上第一请求模块211向网络侧请求的系统时钟,获得第一时刻值;
该读取模块212还用于在页面从后台切换到前台时,读取当前时刻上第一请求模块211向网络侧请求的系统时钟,获得第二时刻值。
进一步的,如图4所示,获取单元21包括:
第二请求模块213,用于在页面切换到后台时,向网络侧请求系统时钟,获得第一时刻值;
该第二请求模块213还用于在页面从后台切换到前台时,向网络侧请求系统时钟,获得第二时刻值。
进一步的,计时单元23用于在页面切换到后台时,启动本地计时;
该计时单元23还用于在页面从后台切换到前台时,结束本地计时,获得通过本地计时得到的后台计时时长。
进一步的,如图5所示,该装置还包括:
切换单元24,用于在后台运行页面的过程中,在获取单元21获取任务到时前的预设时刻上,将页面自动切换到前台并进行任务提示。
进一步的,如图6所示,该装置还包括:
请求单元25,用于当获取单元21判断在后台运行页面的过程中任务到时时,在将页面从后台切换到前台后,重新向网络侧请求所述任务;
上报单元26,用于上报页面切换到后台时获取单元21获取的时刻值;
该上报单元26还用于上报页面从后台切换到前台时获取单元21获取的时刻值。
本发明实施例提供的网页计时的装置,根据分别获取的页面从前台切换到后台时的中止计时时长以及从后台切换到前台时的后台计时时长,得到页面运行的实际时间。与现有技术相比,本发明能够使页面不论处于前台还是后台都能够准确的对页面的实际运行时间进行计时,使页面的计时与网络侧的计时保持同步。
此外,本发明实施例采用后台本地计时的方式,不仅能获得后台运行的时间,而且还能通过预设时刻的方式在任务到时前将页面切换到前台,避免用户操作不及时而造成任务到时的情况发生。同时,页面本地保存前后台切换时的时刻或页面向网络侧上报前后台切换时的时刻,都能够使网络侧获得页面运行的状况,从而对网页进行任务指示或改进。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。