VPS参考测评推荐
专注分享VPS主机优惠信息
hostkvm优惠促销活动
zji优惠促销活动
衡天云优惠活动
亚马逊云aws.amazon.com最新优惠活动
华纳云最新优惠促销活动

微信官方账号开发,一个实现倒计时的功能(纯代码)(微信微信官方账号动态倒计时定时器)

locvps
主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

下面是自己写的一段代码。其功能是实现微信微信官方账号开发过程中的倒计时。效果如下。订单已提交。请在2分57秒内完成支付。纯代码分析。

微信官方账号开发,一个实现倒计时的功能(纯代码)(微信微信官方账号动态倒计时定时器)-主机参考

开始的想法没有考虑到页面在后台的运行和锁屏等问题。代码如下:

let interval = setInterval(()= gt;{ let { staticTime } = this.statestatic time = static time -1;if(static time lt;= 0) { clearInterval(区间);this.setState({提示: # 39;支付超时 # 39;,static time:0 });返回;} let minutes = parse int(static time/60);设秒= staticTime % 60让小费= # 39;订单已提交,请联系 # 39;+分钟+ # 39;积分 # 39;+秒+ # 39;几秒钟内完成支付 # 39;;this.setState({ tip:tip,static time:static time });}, 1000);后来测试发现锁屏或者页面留在后台时计算错误,于是代码修改如下。let interval = setInterval(()= gt;{ let {backGroundTime,staticTime } = this.statethis . setstate({ background time:0 });static time = static time -background time -1;if(static time lt;= 0) { clearInterval(区间);this.setState({提示: # 39;支付超时 # 39;,staticTime:0,});返回;} let minutes = parse int(static time/60);设秒= staticTime % 60让小费= # 39;订单已提交,请联系 # 39;+分钟+ # 39;积分 # 39;+秒+ # 39;几秒钟内完成支付 # 39;;this.setState({ tip:tip,staticTime:staticTime,});}, 1000);this . listenpageshowhidehandle();//在后台计算页面的时间ListenPageShowHideHandle =()= >;{

让{ backGroundTime } = this.state让开始,结束;让自我=这个;document . addevent listener( ;可见性变化 ,function(){ if(document . visibility state = = # 39;隐藏 # 39;){ start =新日期()。getTime();} else if(document . visibility state = = # 39;可见 # 39;){ end =新日期()。getTime();background time = math . floor((end -start)/1000);self . setstate({ background time });console . log( # 39;时差: # 39;,background time);} console . log(document . visibility state);});}

转型之后,先下手为强的问题依然存在。原因是:当iphone使用settimeout()睡眠时,您不能继续运行JavaScript。当手机进入睡眠状态时,Safari会使用settimeout()终止任何正在运行的JavaScript进程。请在这里查看这个答案,了解这样做的一些原因。* *解决方案:* *订单生成时,我们把这个时间记为A,时间间隔为B(要求3分钟内付款,B为3*60*1000),C为当前时间。我们使用setInterval每1秒读取一次时间。然后倒计时时间== A+B-C,代码如下:let interval = setinterval(()= >:{ let { order time,staticTime } = this.statelet now time = date . now();let sub = math . floor((order time+static time -now time)/1000);console . log( # 39;sub # 39,子);if(sub lt;=0){ clearInterval(区间);this.setState({提示: # 39;支付超时 # 39;,is false:true });返回;} let minutes = parse int(sub/60);让秒= sub % 60让小费= # 39;订单已提交,请联系 # 39;+分钟+ # 39;积分 # 39;+秒+ # 39;几秒钟内完成支付 # 39;;console.log(提示);this.setState({ tip:tip,is false:false });},1000);安装配置

相关文章:

微信官方账号授权设置,微信公众号授权

微信点击菜单打开登录微站的实现方法

相关视频:

传智和黑马微信公众平台开发视频教程以上是微信微信官方账号开发和倒计时的一个功能(纯代码)的详细内容。更多请关注主机参考其他相关文章!

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:微信官方账号开发,一个实现倒计时的功能(纯代码)(微信微信官方账号动态倒计时定时器) https://zhujicankao.com/79774.html

【腾讯云】爆款2核2G云服务器首年40元,企业首购最高获赠300元京东卡
打赏
转载请注明原文链接:主机参考 » 微信官方账号开发,一个实现倒计时的功能(纯代码)(微信微信官方账号动态倒计时定时器)
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!