使用微信内嵌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 相关文章推荐
JavaScript 基础问答三
Dec 03 Javascript
js字符编码函数区别分析
Dec 28 Javascript
Firefox中beforeunload事件的实现缺陷浅析
May 03 Javascript
开发中可能会用到的jQuery小技巧
Mar 07 Javascript
js实现遮罩层划出效果是生成div而不是显示
Jul 29 Javascript
第九篇Bootstrap导航菜单创建步骤详解
Jun 21 Javascript
js 转义字符及URI编码详解
Feb 28 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 jQuery
JS组件系列之MVVM组件构建自己的Vue组件
Apr 28 Javascript
Vue中的scoped实现原理及穿透方法
May 15 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
Jun 07 Javascript
javascript单张多张图无缝滚动实例代码
May 10 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实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
JavaScript 事件对象的实现
2009/07/13 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
python中对list去重的多种方法
2014/09/18 Python
Python3实现Web网页图片下载
2016/01/28 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
python最长回文串算法
2018/06/04 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
Why we need EJB
2016/10/20 面试题
经销商培训邀请函
2014/01/21 职场文书
挂牌仪式主持词
2014/03/20 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
实验室安全管理制度
2015/08/05 职场文书
晚会开幕词范文
2016/03/04 职场文书
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android