在开发中经常会用到倒计时的功能,普通一般的倒计时我们可以使用setTimeout或者setInterval

这两种方法,这两个就不过多介绍了,网上都可以查到。

但是这两个方法的弊端在于页面关闭时不会触发,现在我们想要的效果就是有点像消息队列的效果,在页面关闭时倒计时方法也在运行,到一定时间时触发里面的方法体:代码如下

//js代码段
var ctime = "${askOrder.djTime}"

//定义倒计时方法
					function daojishi(ddId) {
						if(flag == "true"){
							return false;
						}
						var time;
						var second;
					    var djs = setInterval(function () {
					         t = 60 - parseInt(((new Date() / 1000) - ctime/1000) / 60);   //剩余分钟数
					         var s = 60 - parseInt(((new Date() / 1000) - ctime/1000) % 60); //剩余秒数
					        
					        if (s == 60) {
					            s = 0;
					            t = t + 1;
					        }
					
					        if (t <= 0 && s<=0) {
					        	//window.location.href = "${wxFront}/server/yqxHref?ddId="+ddId+"&fee="+fee;
					        	yqxState();//这里是具体执行的自己业务逻辑方法
					            clearInterval(djs);
					        }
					         time = t >= 10 ? t: "0"+t;
					       // time = time/1000/60/60;
					         second =s>=10?s:"0"+s;
						$("#close").text("等待支付"+time+":"+second+"后订单自动关闭");
					   }, 1000);
					   
					}

说明:第一段代码是从后台请求回来的时间信息

特别注意:如果你开发的应用要在ios系统上运行的话一定要将后台返回的时间进行二次处理,将返回的时间如下处理

ctime = ctime.replace(/-/g,"/");
	ctime = new Date(ctime);//这一段代码是将返回的时间转一下格式,格式如果正确的话可以不应写

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐