pacejs进度条监控服务端数据加载是否完毕

时间:2022-10-05 22:37:33

  记得刚刚入职新公司的时候,公司在做app里面的h5页面。跟之前公司的流程不太一样。之前都是写完静态页面后通过ajax加载接口数据,这公司省事了,写完静态页面直接扔给服务端,他们来填数据,确实给前端省事了。但新问题也不少。

  前段时间写了个页面,服务端填完数据上线了。但发现数据多的情况下,加载时间比较长,页面一片空白。体验效果特别差。就想着可以加个进度条。

  可问题来了,之前可以用ajax判断数据是否加载完毕。但现在怎么判断呢。纠结了好长时间。翻阅各种资料,

  发现有个pace.js可以监听服务端的数据的进度条,下载下来试了试。确实可以,引入js跟css,代码都不用写,确实挺不错。

  具体请参考pace.js  http://github.hubspot.com/pace/docs/welcome/  

  就在前两天,又有进度条的需求了,这次用的ajax,那更简单了,加载进来就可以了,但发现还是会有问题,ajax请求会发出两个,一个请求头,一个请求体,当请求头发送完毕后进度条就消失了。但内容还没有出来,看文档里面可以监听全部ajax请求完毕,

window.paceOptions = {
     ajax: true,
     eventLag: false,
     elements: false
  }

在window.paceOption{ } 里设置ajax为true之后,当网速过慢的情况下,会发现使用pace.js进度条并没有等数据全部请求完成之后消失,并没有达到理想的效果。查了好多资料发现pace.js在一些版本里默认ajax只跟踪GET方法的问题,需要在pace.js引入前添加代码(这句是重点)

window.paceOptions = {
    ajax: {
      trackMethods: ['GET', 'POST']
    }
  }

或者把post请求改成get.

神奇的发现,真的可以了,只有在数据全部加载完毕以后,进度条才会消失。这算pacejs的坑吗,也不确定,

简单的记录一下,有朋友遇到同样的问题,可以做下参考。