航班持续时间需要客户端运算的思考以及计算方法

思考为什么后端直接给我们全部航班数据, 让客户端自己翻页;也不预先计算航班时间, 需要客户端自己计算?

两种不同的分页风格

  • 头条新闻类 – 后端负责分页, 前端只需要传入页码和每页长度, 获取到的就是应该显示的数据。
  • 航班信息类 – 直接所有数据交给你, 由前端进行处理分页。
    原因一:用户量大, 一个人来回切换页码就会造成多次访问请求。
    原因二:用户终端(电脑)性能更好。

机票页面是一个流量密集型的服务。

  • 航班信息数据相对新闻列表等数据相对有限,因此客户端处理的数据量并不大。
  • 一个人多次访问, 每多翻一页, 就多一次请求。
  • 多个人访问, 每个人获取一百条数据,一个人计算一百次, 如果一百次浏览就是 就是一万次的计算。

对于页面的请求, 如果每个人读取十张飞机票就重新发送请求, 那么 服务器就要多处理一次。

对于航空公司来说, 计算航班之间时间是需要服务器运算力,。

有一百个航班的话, 一个人访问, 服务器计算 100 次, 100个人访问, 服务器就要计算 10000 次,

服务器的运算要求极多的运算资源。

但是如果将计算的过程交给用户, 其实每个用户自己无非就是计算 100次而已。

计算航班的持续时间

  • 先将所有时间换算成分钟
  • 相减 再转换为 小时 分钟格式即可
  • 每当跨过凌晨, 到达下一天的时候, 减出来的数据都会是负数, 其实少了24小时,需要重新加回去
    如果算出来的相差时间是负数, 就要添加24小时的分钟进去
    在这里插入图片描述
//计算属性
computed:{
     duration: function () {
      const start =
        Number(this.data.dep_time.split(":")[0] * 60) +
        Number(this.data.dep_time.split(":")[1]);
      const end =
        Number(this.data.arr_time.split(":")[0] * 60) +
        Number(this.data.arr_time.split(":")[1]);
      // console.log(start);
      // console.log(end);
      // const timeduration = end - start;
      //因为后面有重新赋值,不能用const
      //报错显示:timeduration is read only
      let timeduration = end - start;
      // console.log(timeduration);
      //跨过0点,加多一个24小时
      if (timeduration < 0) {
        timeduration = timeduration + 24 * 60;
      }

      return Math.floor(timeduration / 60) + "时" + (timeduration % 60) + "分";
    },
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值