首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

手机锁屏js倒计时停止问题解决办法探索

如图,有这么个需求,测试人员在测试过程中提了一个bug,手机锁屏再唤醒倒计时时间没有更新,仍从锁屏的时间继续,于是开始寻找解决之法 经了解得知,锁屏时候,浏览器的一切活动会停止运行,那么js也无法幸免,...这时候就想到有没有能监听浏览器活动停止的方法呢?...this.times = this.times - (Date.now() - this.closeTime)/1000; } }, } 经实验,加上这段代码后确实倒计时更新了...,但是时间显示会快2到3秒,不得其解,感觉应该是取值的时候比屏幕唤醒慢了,比如我锁屏5秒,但是在唤醒时倒计时少了7秒。...也想到了一种办法,就是唤醒时候重新拉取服务端的时间,然后更新虚拟dom,在实际操作中,由于是异步获取,会看到倒计时数字那里有明显的闪一下更新,不利于用户体验。

3.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    三、登录页制作《iVX低代码无代码个人博客制作》

    在此设置了两个元素的高度均为40、圆角取消: 接着按照此方法一次创建其他内容: 此时由于其内部的每一个行的水平内容都是设置为居中,我们需要内部元素的宽度一致才能对其,在此验证码输入框的宽度要等于手机号码和发送按钮宽度的综合...二、倒计时实现 接着我们需要实现发送验证码的倒计时效果。...,在触发器中给予事件,触发后用于存储倒计时秒数的变量减1: 那么接下来如何使文本内容更改为描述呢?...,那如何进行限制?...此时只需要在触发器中,添加条件,当秒数已经小于1时,那么发送按钮的文本就更改为发送: 但是此时还会出现一个问题,当前触发器还未停止,登录倒计时依旧在减1,此时还需要在小于0时停止当前触发器并且我还需要给予原本的秒数为

    1.2K20

    关于首页倒计时处理一些细节

    关于首页倒计时处理一些细节 下面是效果图 ?...如果现在时间戳小于开始的时间戳 标识还没有开始销售 如果现在的时间戳大于等于开始时间戳并且小于结束的时间戳 标识正在销售 如果现在的时间戳大于等于结束的时间戳 标识已经结束销售 因为开始的时间和结束的时间是后段给的.../** 时间段 如果还没有开始就是现在时间和开始时间的间距 如果是已经开始就等于现在时间和结束时间的间距 如果是已经结束就等于0 */ @property (nonatomic, assign,...因为可能用户注册的时候 倒计时已经停止 或者 不满足定时器开启的条件 外接就无法得到对应的状态 会出现一些问题无法修复 - (void)valueChnaged { for (int i =...因为之前做的是 如果商品已经销售停止 就删除对应的元素 让界面只显示正在销售的 后来产品说只显示一个元素界面会不好看 就改成了如果两个都销售停止才删除对应的频道 如果只有一个就让已经销售停止的展示

    52910

    移动端倒计时不准:手机锁屏熄屏APP后台运行屏幕卡顿

    看看:hcysun.me/2016/07/11/js-Worker-API-在倒计时中的使用/ 的案列在做开发的时候,倒计时的需求是很常见的,比如订单待提交和待支付都会有倒计时,市面上的兼职软件在领取任务后都会有倒计时...,登录注册中获取验证码的时候也会有倒计时,有的页面只有一个倒计时,而有的页面作为列表页,列表中的每一项都会有倒计时,今天就来聊聊 Worker API 在js倒计时中的使用,以及为什么要使用 Worker...,但这并不是最关键的,大家可以发现,在倒计时走到37的时候,用手指操作页面大概有两三面的时间,按正常来讲,时间应该倒计时到 35秒或者34秒,但是图中很清楚的可以看到,在手指停止操作后,时间却从37秒继续倒计时...        }    在PC中刷新你的页面,可以看到依然正确工作,之后再拿到ios中做之前gif图同样的操作,如下图:我们可以看到,在55秒的时候开始拖动页面,这个时候倒计时停止了...参考文章:hcysun.me/2016/07/11/js-Worker-API-在倒计时中的使用/ 手机息屏导致 js 定时器时间不准问题及解决方法 https://juejin.im/post/5bfe6f11e51d453c6c05f61d

    2.2K10

    (Demo分享)利用JavaScript(JS)做一个可输入分钟的倒计时钟功能

    利用JavaScript(JS)实现一个可输入分钟的倒计时钟功能 本文章为 Tz张无忌 原创文章,转载请注明来源,谢谢合作!...本Demo实现了输入数字可以开启倒计时功能,可以随时暂停、重置倒计时,并且对输入非数字类型其他字符进行了过滤以及提示!...整体思路: 1.利用JS获取一次当前时间,把用户在input输入框的内容,转化为我们所需要的数字 2.然后利用JavaScript的时间戳`get.Time()`,把用户输入的数据+我们第一次获取的时间..." +seconds + " : " +milliseconds); // 一些判断条件 // 输入的小时不能大于24小时,24小时等于...0的时候停止计时器 if( time < 0){ odiv.innerHTML = ("♥倒计时结束♥");

    2.3K20

    微信小程序登录与注册验证码倒计时的效果实现

    js事件。...三,index.js实现倒计时效果 1,首先看下倒计时实现的部分。 ? 上图红框里是我们实现倒计时的核心代码,可以看到我们主要是用了setInterval 这个方法来实现每个1s的计时器。...这里我们定义一个countDownTime,初始值为6s,然后我们每隔1s,对countDownTime做减1操作,直到countDownTime的值小于2,也就是等于1时,我们用clearInterval...这里之前经常有同学问过,怎么在js里动态改变小程序组件的样式。其实小程序这点做的不如vue好,不能在js里获取到组件的实例。所以我们就要换个方式了。 <!...下面把index.js的完整代码贴出来给大家 //老师微信2501902696 let timeNum = 6 //60秒倒计时 let countDownTime = timeNum let timer

    2.1K50

    React 测试驱动开发:从用户故事到产品

    https://www.toptal.com/react/react-tutorial-pt2 《对 React 组件进行单元测试》 《更可靠的 React 组件:从"可测试的"到"测试通过的"》 《如何测试...确保用户能够: *启动计时器 *看到计时器开始倒计时 即便用户多次点击启动按钮,倒计时也不应被中断作为一个用户,我要能停止计时器,这样只有在我需要时才会倒计时。...确保用户能够: *停止计时器 *看到计时器被停止了 当用户多次点击停止按钮后,不应该再发生什么作为一个用户,我要能重置计时器,这样我又能从头开始倒计时了。...计时器 重构 Timer 为了实现 启动定时器、停止定时器、重置定时器 等功能,需要对 Timer 重构。...计时器 所以,这就是我们如何使用 TDD 开发一个基础 React 应用的过程。用户故事及验收准则越细致,测试用例也将越精确,那将是大有裨益的。

    3.3K30

    ❤️使用 HTML、CSS 和 JS 的简单倒数计时器 ❤️

    完整源码下载 在线演示 演示地址:http://haiyong.site/daojishi 你可以尝试它的现场演示以了解它是如何工作的。如果你知道如何创建数字时钟,那么创建这样的项目就会容易得多。...也就是说,您必须确定要运行倒计时的时间。...➤ 一分钟等于 60 秒,所以在这种情况下 m = s * 60 ➤ 一小时等于 60 分钟,在这种情况下 h = m * 60 ➤ 一天等于 24 小时,所以在这种情况下 d = h * 24。...由于倒计时时间每秒都是间歇性的,所以这个系统需要每秒更新一次。...希望通过本文,您已经学会了如何使用 HTML、CSS 和 JS 的简单倒数计时器。我之前使用 HTML、CSS 和 JavaScript 制作了更多类型的小工具,如果您愿意,可以查看这些设计。

    5.4K20

    倒计时和限时抢效果

    接下来我们继续前篇js效果内容,根据前面的时间显示效果,我们来扩展两个小例子。 第一个是倒计时的天数效果。就是说假如现在是9月4号,我们设置结束时间为10月4号,那么显示的结果应该要为30。...getTime()是返回毫秒数,而Math.ceil()是向上取整的计算,它返回的是大于或等于函数参数、并且与之最接近的整数。如Math.ceil(12.2),返回13。...------栗子分割线---------------------------------- 以上是一个相对简单的倒计时效果,接下来我们要实现一个限时抢的效果,效果如图: 思路类似倒计时效果;先知道要结束的时间...显示的结果: 好了,整个案例结束了,恭喜你的js能力又提高了一丢丢。最后给出整个代码: 好了,这次就到这来了。...现在公众号里的成员越来越多了,以后我也会定时给出一些常用的实例,共同提高js的编写能力。

    1.6K20

    知道CountDownLatch是做什么的,那你知道它的底层是如何实现的吗?

    图片三、await()方法源码解析从上面的演示示例中,我们已经看到,通过在主线程中调用countDownLatch.await()方法,使得主线程进入阻塞状态,那么其内部是如何实现的呢?...,如果state等于0,则表示倒计时结束了,那么该方法返回1,否则,返回-1;如果倒计时没有结束(即:tryAcquireShared(arg)返回-1),则继续执行doAcquireSharedInterruptibly...在for(;;)无限循环中,会尝试获得r值,其含义如下所示:【r==1】表示state等于0,倒计时完毕。【r==-1】表示state不等于0,倒计时还在进行中。...那么,此处我们的前提条件就是——倒计时还在进行中;所以r等于-1,无法满足下面一行的if(r>=0)的判断条件,所以,不执行该if逻辑。...倒计时就已经结束了,则此时直接返回false;如果倒计是没有结束,则继续往下执行,先将倒计时总数减1,如果等于0,则说明本次调用countDown()方法是倒计时的最后一次,那么应该可以触发后续的解除主线程阻塞的操作了

    16220

    html倒计时免费代码,JS倒计时代码汇总

    本文实例总结了常见的JS倒计时代码。分享给大家供大家参考。...具体汇总如下: 第一种:精确到秒的javascript倒计时代码 HTML代码: 离2010年还有: startclock() var timerID = null; var timerRunning...HTML代码: 第四种:最简倒计时 HTML代码: 第五种:最简倒计时二 HTML代码: function djs(){ var urodz= new Date(“11/12/2008”); var...– 采用系统时间自校验 这次利用系统时间自校验倒计时, 无需手工调校使得倒计时更为精确, 代码及详细注释如下: 00:01:11:00 var normalelapse = 100; var nextelapse...setInterval函数: 时间逝去nextelapse(毫秒)后, onTimer才开始执行 timer = window.setInterval(“onTimer()”, nextelapse); } // 停止运行

    5.2K10

    【微信小程序】---- 监听页面停止滚动

    场景需求 页面页脚部分有一面积高300px的浮窗,遮挡页面很严重,但是浮窗的内容又很重要;业务需求,当页面滚动的时候,浮窗隐藏,页面停止滚动的时候浮窗显示! 2....解决思路 如何在页面滚动监听的函数中知道页面停止滚动? 1.1 方法一:对比前后两次的滚动变量 scrollTop; 1.2 延迟执行显示方法 setTimeout; 4....就设置为 false,进行隐藏;【防止粗暴的滚动就设置false,这样就会导致setData调用频繁,消耗性能】 如果一直在滚动,就清除上一次的 this.timer;【此处必须清除,防止一直滚动,创建多个倒计时...,消耗性能,而且还会显示浮窗,不满足设计需求】 当前滚动建立一个200ms的倒计时,200ms没有执行 onPageScroll 函数,说明页面已停止滚动,当然时间可以相对更短,但是浮窗就会出现闪动,体验效果不好...,经我测试200ms是体验相对好的节点;【时间可以更具自己需求设置】 倒计时执行完成,说明滚动停止,执行显示操作,注意同时清除倒计时

    2.8K20

    知道CountDownLatch是做什么的,那你知道它的底层是如何实现的吗?

    三、await()方法源码解析 从上面的演示示例中,我们已经看到,通过在主线程中调用countDownLatch.await()方法,使得主线程进入阻塞状态,那么其内部是如何实现的呢?...,如果state等于0,则表示倒计时结束了,那么该方法返回1,否则,返回-1;如果倒计时没有结束(即:tryAcquireShared(arg)返回-1),则继续执行doAcquireSharedInterruptibly...在for(;;)无限循环中,会尝试获得r值,其含义如下所示: 【r==1】表示state等于0,倒计时完毕。 【r==-1】表示state不等于0,倒计时还在进行中。...那么,此处我们的前提条件就是——倒计时还在进行中;所以r等于-1,无法满足下面一行的if(r>=0)的判断条件,所以,不执行该if逻辑。...,则此时直接返回false; 如果倒计是没有结束,则继续往下执行,先将倒计时总数减1,如果等于0,则说明本次调用countDown()方法是倒计时的最后一次,那么应该可以触发后续的解除主线程阻塞的操作了

    14320

    2018年各大互联网前端面试题五(今日头条)

    针对移动浏览器端开发页面,不期望用户放大屏幕,且要求“视口(viewport)”宽度等于屏幕宽度,视口高度等于设备高度,如何设置? 概念 Bom是什么?列举你知道的Bom对象。...如何理解跨域。 cookie是什么,怎么存储。 框架 用过NodeJS的EventEmitter模块吗,它是怎么实现功能的,步骤是什么? 说说Vue框架,对于对象引用的情况呢?...代码 JS中prototype、proto、super分别是什么? 使用至少两种方式实现纯css的自适应搜索 倒计时怎么做? 实现一个响应式的正方形 节流函数怎么写?...手写bind函数 如何用CSS实现一个三角形 promise、setTimeout、async/await的执行顺序。 arguments是数组吗?怎么实现用它调用数组方法?类数组和数组的区别是什么?...算法 给定一个数组arr,选出 n 个数的和等于m 一个列表,假设有100000个数据,这个该怎么办? 给一个多行多空格的字符串,让你分割成三行三列的数组。

    1.4K30
    领券