使用微信内嵌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的实现代码
Jan 10 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
Sep 29 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
Mar 30 Javascript
微信小程序 条件渲染详解
Oct 09 Javascript
Easyui Tree获取当前选择节点的所有顶级父节点
Feb 14 Javascript
详解JavaScript中的六种错误类型
Sep 21 Javascript
vue中使用refs定位dom出现undefined的解决方法
Dec 21 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
Nov 11 Javascript
Electron 调用命令行(cmd)
Sep 23 Javascript
微信小程序基于movable-view实现滑动删除效果
Jan 08 Javascript
javascript执行上下文、变量对象实例分析
Apr 25 Javascript
vue在响应头response中获取自定义headers操作
Jul 24 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
第五节 克隆 [5]
2006/10/09 PHP
PHP读取MySQL数据代码
2008/06/05 PHP
Smarty保留变量用法分析
2016/05/23 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
js操作checkbox遇到的问题解决
2013/06/29 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
Python计算一个文件里字数的方法
2015/06/15 Python
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
快速了解Python相对导入
2018/01/12 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
机械工程师的岗位职责
2013/11/17 职场文书
事业单位公务员的职业生涯规划
2014/01/15 职场文书
副处级干部考察材料
2014/05/17 职场文书
入职担保书范文
2014/05/21 职场文书
党支部特色活动方案
2014/08/20 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers