使用微信内嵌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 HTML中的table
Apr 15 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
Sep 08 Javascript
使用jQuery模板来展现json数据的代码
Oct 22 Javascript
通过JS来判断页面控件是否获取焦点
Jan 03 Javascript
jquery选择器原理介绍($()使用方法)
Mar 25 Javascript
JavaScript插件化开发教程(六)
Feb 01 Javascript
jquery结婚电子请柬特效源码分享
Aug 21 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
Aug 01 Javascript
简单实现node.js图片上传
Dec 18 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
Aug 24 Javascript
Vue发布订阅模式实现过程图解
Apr 30 Javascript
简单了解three.js 着色器材质
Aug 03 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基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
php全排列递归算法代码
2012/10/09 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
JS匀速运动演示示例代码
2013/11/26 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
TypeScript入门-接口
2017/03/30 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
Python ljust rjust center输出
2008/09/06 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
Python正则表达式和元字符详解
2018/11/29 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
详解Python 中的容器 collections
2020/08/17 Python
大学生入党思想汇报
2014/01/14 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
学校远程教育工作总结
2015/08/11 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python