开发日记(02) - js 异步任务队列

本文详细介绍了在JavaScript中遇到的全局数据字典加载导致的重复请求问题,提出了本地存储和异步任务队列两种解决方案。通过实现异步任务队列,确保网络请求只发送一次,同时满足多个请求需求,简化了代码并提高了性能。
摘要由CSDN通过智能技术生成

开发日记(02) - js 异步任务队列

2021-01-31 20:40:22

0️⃣ 问题 ❓

算是之前项目遗留下来的一个问题。一直困扰着我。

还是关于 uni-app 以及 Vue 项目的网路请求,有这么一个需求,项目内有一个全局使用到数据,我们称为**“数据字典”**。需要在项目一打开就加载进来,存入到 Vuex,后续使用就不需要再请求网络了,使用的时候先判断 Vuex 内有没有数据,没有就去请求,有就用现成的。一般像这样的数据不需要经常更新。 有点类似于项目的全局配置,一打开就需要请求,然后在特定的页面需要用到。

因为是全局需要用到,所以我们在 App.vueonLaunch 应用生命周期(uni-app 的应用生命周期,与 Vuemounted 生命周期类似)进行一次请求

数据字典就是用来格式化类似性别订单状态的,比如后台返回一个订单列表,订单状态为 1,2,3,4,5…

前端不可能显示为纯数字,这个时候可以根据后台给到的解释进行判断显示。不过这种方法有一个缺点,就是每增加一种状态前端都得改代码。

数据字典就是一种比较好的解决方式,订单状态全部放在后端维护,前端使用数据字典配置好的状态说明进行格式化显示就很灵活了。

${app}/src/App.vue

import {
    getDictByKey } from '@/store/util'
export default {
   
  onLaunch() {
   
    console.log('App Launch')
    getDictByKey()
  },
}

在页面中这么用

${app}/src/pages/foo/foo.vue

import {
    getDictByKey } from '@/store/util'
export default {
   
  async onLoad() {
   
    // 请求类型信息
    const typeList = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值