使用微信内嵌H5网页解决JS倒计时失效问题


Posted in Javascript onJanuary 13, 2017

 项目要求:将H5商城页面嵌套到公司微信公众号里

    项目本身的开发跟移动端网页并无太多差异,只是这昨天遇到一个问题,说是棘手,到也简单。

    用户下单后,在选择支付方式页面,有个倒计时的逻辑(从下单时开始计算,24小时后未支付,会有ws自动取消这个订单),js代码如下: 

<script type="text/javascript"><br> var timespan = '20160113'; //后台程序生成24小时时间差值,这里随便写写
  var timer;
  function UpdateTime() {
   if (timespan > 0) {
    var hour = Math.floor(timespan / (60 * 60));
    var minute = Math.floor((timespan - (hour * 60 * 60)) / 60);
    var second = (timespan - (hour * 60 * 60) - (minute * 60));
    var word = "支付剩余时间" + (hour<10?("0"+hour):hour) + ":" + (minute<10?("0"+minute):minute) + ":" + (second<10?("0"+second):second) + ",逾期订单将自动取消~";
    timespan--;
    jQuery(".tc").html("<i class='time'></i>" + word);
    timer = setTimeout("UpdateTime()", 1000);
   }
   else {
    $('.content').find('.w_op').hide();
    clearTimeout(timer);
    jQuery(".tc").html("<i class='time'></i>" + "订单过期,已自动取消~");
    window.location.href='@Url.Action("orderDetail", "Order", new { OrderNumber = Model.No })';; //订单过期,跳转到订单详情页
   }
  }
  jQuery(document).ready(function () {
   UpdateTime();
  });<br></script>

页面效果如下:

使用微信内嵌H5网页解决JS倒计时失效问题

这样写,本来没有任何问题的,而且本地测试都ok。

可是,放到外侧的时候,问题就来了。安卓版微信,会出现当手机锁屏时,出现倒计时没有走,仍然是关闭屏幕前时间,也就是说息屏这段时间,时间静止了...

后来,后来当然不能着急啊,各方求救,寻找方法,于是有了下面:

倒计时的实现,在第一次进入页面时,请求服务器获取倒计时的剩余时间,然后在页面通过js等手段再倒计时;手机在锁屏后再解锁后倒计时还在进行但是倒计时的时间不准确,究其原因是在解锁后没有去请求服务器的时间来重新倒计时而是还是按照上次锁屏的基础上进行倒计时的,这是因为浏览器有缓存,在不刷新页面的情况下,浏览器会缓存第一次请求的内容,服务端更新后浏览器仍然显示第一次的内容

后来多方查证,可以在meta里进行设置,设置页面nocache,每次访问次页面,均需要从服务器重新获取,而不是使用缓存中读取

  expires设定过期时间,一旦过期就必须请求服务器,

  expries出现在http-equiv属性中,使用content属性表示页面缓存的过期时间

  expries=0,缓存过期前的分钟数。若用户在页面过期前返回该页面,就会显示缓存的版本页

 

<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0">

以上所述是小编给大家介绍的使用微信内嵌H5网页解决JS倒计时失效问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
window.onload和$(function(){})的区别介绍
Oct 30 Javascript
Eclipse去除js(JavaScript)验证错误
Feb 11 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
Jun 16 Javascript
jQuery中prev()方法用法实例
Jan 08 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
Feb 05 Javascript
详解angular2实现ng2-router 路由和嵌套路由
Mar 24 Javascript
动态加载JavaScript文件的3种方式
May 05 Javascript
vue ssr 实现方式(学习笔记)
Jan 18 Javascript
详解element-ui中el-select的默认选择项问题
Aug 02 Javascript
微信小程序实现录音功能
Nov 22 Javascript
Vue实现商品飞入购物车效果(电商项目)
Nov 26 Javascript
es6中new.target的作用和使用场景简单示例分析
Mar 14 Javascript
bootstrap按钮插件(Button)使用方法解析
Jan 13 #Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
Jan 13 #Javascript
bootstrap警告框使用方法解析
Jan 13 #Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
Jan 13 #Javascript
js实现文字向上轮播功能
Jan 13 #Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
Jan 13 #Javascript
js实现交通灯效果
Jan 13 #Javascript
You might like
zf框架的Filter过滤器使用示例
2014/03/13 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
javascript中xml操作实现代码
2011/11/21 Javascript
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
微信小程序当前时间时段选择器插件使用方法详解
2018/12/28 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
python遍历数组的方法小结
2015/04/30 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
Python中交换两个元素的实现方法
2018/06/29 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
python中time tzset()函数实例用法
2021/02/18 Python
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
大学生写自荐信的技巧
2014/01/08 职场文书
法律进社区实施方案
2014/03/21 职场文书
投标承诺书范本
2014/03/27 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
山楂树之恋观后感
2015/06/11 职场文书