使用微信内嵌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 相关文章推荐
document.compatMode介绍
May 21 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
Jan 04 Javascript
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
Jul 06 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
Jun 06 Javascript
JS+CSS实现美化的下拉列表框效果
Aug 11 Javascript
jquery trigger函数执行两次的解决方法
Feb 29 Javascript
原生js实现addClass,removeClass,hasClass方法
Apr 27 Javascript
JavaScript闭包与作用域链实例分析
Jan 21 Javascript
JS如何实现封装列表右滑动删除收藏按钮
Jul 23 Javascript
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
JavaScript利用html5新方法操作元素类名详解
Nov 27 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
PHP 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
php之XML转数组函数的详解
2013/06/07 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
Javascript----文件操作
2007/01/18 Javascript
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
js Html结构转字符串形式显示代码
2011/11/15 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
JS实现骰子3D旋转效果
2019/10/24 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
python持久性管理pickle模块详细介绍
2015/02/18 Python
Python验证码识别处理实例
2015/12/28 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
TensorFlow实现Logistic回归
2018/09/07 Python
Python类的继承、多态及获取对象信息操作详解
2019/02/28 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
Python实现某论坛自动签到功能
2019/08/20 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
法人委托书范本
2014/04/04 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
2015年推普周活动总结
2015/03/27 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书