TypeScript, Angular4 定时器(订单30分钟取消)如何最合理?

如题。
当前的方案是 后台传给前台一个字段值为: 1800 ,其余由前端处理。这样合理吗?一般采用什么方案?

若前端做,至少要防止刷新。

找了一段前端代码,用window属性的,在linux平台测没出来

var maxtime;
if(window.name==''){
maxtime = 6*60;
}else{
 
maxtime = window.name;
}
 
function CountDown(){
if(maxtime>=0){
var  minutes = Math.floor(maxtime/60);
var  seconds = Math.floor(maxtime%60);
var  msg = "请在 "+minutes+"分"+seconds+"秒 内完成支付";
document.all["timer"].innerHTML = msg;
//if(maxtime == 5*60) alert('注意,还有5分钟!');
 
--maxtime;
window.name = maxtime;
}
 
else{
clearInterval(timer);
alert("订单已取消!");
} 
}
var  timer = setInterval("CountDown()",1000);
阅读 3.7k
1 个回答
  1. 后台在创建时计算一个超时过期时间,把过期时间传给前端(如前端时间不准可同时传递服务器当前时间,前端根据浏览器获得的本地时间和服务器时间修正时间差)
  2. 前端获取当前时间后通过计算过期时间-当前时间来计算时间差显示倒计时。如果前端要显示时间倒计时就重复执行 过期时间-当前时间
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进