宝哥软件园

利用微信嵌入式H5网页解决JS倒计时失败问题

编辑:宝哥软件园 来源:互联网 时间:2021-09-06

项目要求:将H5商城页面嵌套入公司微信微信官方账号

项目本身的开发和移动网页没有太大的区别,但是昨天出现了一个问题,很难,也很简单。

用户下单后,选择付款方式页面有倒计时逻辑(如果24小时后订单没有支付,ws会自动取消订单),js代码如下:

脚本类型=' text/JavaScript ' br var timespan=' 20160113 ';//后台程序生成24小时时差,所以这里写var timer函数UpdateTime(){ if(timespan 0){ var hour=math . floor(timespan/(60 * 60));var分钟=math . floor((time span-(hour * 60 * 60))/60);var second=(时间跨度-(小时* 60 * 60) -(分钟* 60));Var word='支付剩余时间'(小时10?(' 0 '小时):小时)':'(分钟10?(' 0 '分钟):分钟)':'(秒10?(' 0 '秒):秒)',逾期订单将自动取消~ ';时间跨度-;jQuery('。TC’)。html(' I class=' time '/I ' word);timer=setTimeout('UpdateTime()',1000);} else { $('。内容')。查找('。w _ op’)。hide();clearTimeout(计时器);Jquery('。TC’)。html ('I class=' time'/I ' '订单逾期,已自动取消~ ');window.location.href='@Url。操作(' orderDetail ',' Order ',new { OrderNumber=Model。no })';//订单逾期,跳转到订单详情页面}} jquery(文档)。ready(function(){ updatetime();});br/脚本页面效果如下:

这样写,本来是没有问题的,局部测试也可以。

然而,当你把它放在外面时,问题就来了。安卓版的微信,当手机锁屏时,倒计时不走,依然是关屏前的时间,也就是说,在息屏的时间内,时间依然。

当然,以后你就不能再担心了。各方求援,想方设法,所以有以下几点:

倒计时的实现,第一次进入页面时,请求服务器获取倒计时剩余时间,然后通过js等方式在页面上再次倒计时;锁屏解锁后,倒计时仍在进行,但倒计时时间不准确。原因是倒计时是以解锁后最后一次锁屏为准。这是因为浏览器有缓存。在不刷新页面的情况下,浏览器将缓存第一个请求的内容,并且在服务器更新后,浏览器仍将显示第一个内容。

后来多方验证,页面nocache可以在meta中设置。每次访问子页面时,您都需要从服务器检索它,而不是从缓存中读取它

Expires设置过期时间,一旦过期,它必须请求服务器。

Expries出现在http-equiv属性中,而content属性用于指示页面缓存的到期时间

Expires=0,缓存过期前的分钟数。如果用户在过期前返回页面,将显示缓存版本页面

meta http-equiv=' pragma ' content=' no-cache ' meta http-equiv=' cache-control ' content=' no-cache ' meta http-equiv=' expires ' content=' 0 '以上是边肖H5网页介绍的利用微信嵌入解决JS倒计时失败的问题,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

更多资讯
游戏推荐
更多+