【问题标题】:Reload web page when mobile device wakes from sleep移动设备从睡眠中唤醒时重新加载网页
【发布时间】:2015-03-17 10:44:11
【问题描述】:

我创建了一个可与 Javascript/HTML/PHP/MySQL 配合使用的倒计时时钟。

只要点击“开始倒计时”,纪元时间就会存入数据库并开始倒计时。

当您重新加载页面时,它会进入数据库,获取倒计时开始的纪元时间,将其与页面重新加载的时间进行比较并计算剩余时间。然后 JS 开始正确地继续倒计时,而不是从头开始。例如:

我将倒计时时间设置为 100 秒。

我点击:开始倒计时

100、99、98、97、96...

我重新加载页面(假设加载需要 2 秒)

它从它应该在的位置继续倒计时:94、93、92、91 ... 0

这在每个网络浏览器(是的,甚至是 Internet Explorer)上都能完美运行,但我在移动设备上遇到了一个问题:当移动设备休眠时,倒计时停止(我假设它就像在 PC 上关闭浏览器一样),并且当我唤醒它时,它会从我离开它的地方继续计数,而不是从我离开它的地方减去设备睡眠的总秒数。

我的问题是:JavaScript/Jquery 中是否有一个事件会在移动设备唤醒后立即触发?

上网查了一下发现了这个:Javascript event for mobile browser re-launch or device wake

这是一个不错的解决方案,但是当用户在页面上时,它会每隔 X 秒(在本例中为 5 秒)与服务器联系一次。这将导致页面上的大量流量,我想阻止它。 [如果我错了,请纠正我。

任何解决方案将不胜感激!

【问题讨论】:

    标签: javascript android jquery ajax


    【解决方案1】:

    不要设置剩余时间。设置实际时间,让JavaScript计算每个间隔的剩余时间,你的问题就解决了。

    【讨论】:

    • 我没有时间测试它,但我认为你可能是对的!我会试试的,让你知道!谢谢!!
    • 可能是我写错了..计算是用JS完成的..我改变了计算方法但仍然没有。我认为一旦移动设备休眠,JS 就会停止工作,在休眠前保存最后的值。一旦设备唤醒,JS 就会启动,并使用这些值而不是正确的值来倒计时。
    • 应该没问题。当 JS 启动时,它会读取您设置的日期和时间(不应该更改)并计算它与当前时间之间的差异。它应该在每个时间间隔(例如每秒)执行此操作。您设置的日期永远不会改变,并且设备上的当前时间始终是最新的,因此如果您每秒都执行一次计算,那么计算应该不会失败。
    • 我将在今天晚些时候进一步测试它。事实:当桌面/笔记本电脑浏览器关闭时,JS 不会执行。但是,一旦您再次导航到该页面,页面就会重新加载并且一切正常。问题:移动设备休眠时会发生什么? JS 会停止工作吗?另外,如果移动设备在同一网页上唤醒会怎样?
    • 我已经编写了一个完全按照您描述的方式执行的应用程序,并且完全按照我向您描述的方式实现了它。我刚刚在 iPad 上进行了测试。它按预期倒计时。我关闭 iPad,等待,重新打开它,js 立即重新启动,因为我每秒钟都在计算时间差,它会重新计算它应该继续前进的位置。它坚如磐石,非常准确。只需按照我描述的方式实现它。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 2018-12-04
    • 2012-10-08
    相关资源
    最近更新 更多