uniApp 小程序 api请求预加载工具
第一次发布这种东西,由于工作的原因没有很多测试的时间,如有问题,望各位手下留情,也可以直接vx联系我,vx:b948993029
注意:预加载http请求最好设置超时时间,如果没有超时时间,预加载会一直处于执行当中,无法对于超时或者错误情况进行处理
- 在开发uniApp的时候我就在想,每个页面的请求为什么非要等到onLoad之后再去请求页面的数据,明明知道要进入哪个页面,并且需要那些数据,为什么不在进入之前就做好加载的请求,这样就避免了进入页面的时候还要去等待数据的返回并且渲染页面,虽然跳转的动画只有300ms,如果响应保持在300ms之内,这种如丝般顺滑我想应该没有人会拒绝的。
example 示例
addHttp(id, func, params)
runAddHttp(id, func, params)
removeHttp(id)
getData(id, func)
send(id, params, isDelete)
方法 | 参数 | 说明 |
---|---|---|
addHttp | @param {string} id 预加载id 要保证唯一性 默认:必传 @param {promise} func 预加载方法 promise类型 默认:必传 @param {object} params 预加载方法参数 默认:null | 添加预加载请求函数 重复id时后者覆盖前者 |
runAddHttp | @param {string} id 预加载id 要保证唯一性 @param {promise} func 预加载方法 promise类型 默认:必传 @param {object} params 预加载方法参数 默认:null | 添加并立即执行预加载请求函数 重复id时后者覆盖前者 |
removeHttp | @param {string} id 预加载id 要保证唯一性 默认:必传 | 删除预加载请求函数 |
getData | @param {string} id 预加载id 要保证唯一性 默认:必传 | 获取预加载结果 |
send | @param {string} id 预加载id 要保证唯一性 默认:必传 @param {object} params 预加载方法参数 请求前可改变请求参数 默认:null @param {Boolean} isDelete 执行完是否删除预加载方法 默认:不删除 | 执行预加载 |
onload这些是页面生命周期,肯定是有其意义的,业务写在这些钩子里面也是有必要的,要说预加载的必要性,真那么重要的话那些做框架的总会给你做好好的,对应这300ms或者加载慢,我还是比较倾向于做骨架屏或者其它加载效果。
我没有说业务写在生命周期中有任何问题,我强调的是,重点利用300ms的跳转动画提前发起数据请求,至于骨架屏,加载效果之类的只是提升了用户的感知体验,并不能提升你的程序运行以及页面的渲染速度