所有分类
  • 所有分类
  • 后端开发
小程序开发:双线程难题破解

小程序开发:双线程难题破解

小程序应用。这里列举一些跨页面交互的场景。一个是双线程的处理机制问题,另一个是页面栈之间交互问题。当考虑到跳转页面后的第一件事情便是取数逻辑,那么我们是否能够进行优化呢?如此便可以同时处理取数和页面加载的逻辑,当然,这个对于页面有耦合性,不

哈喽大家好!今天咱们就来谈谈超有趣的话题——关于小程序开发这个大头事儿。你猜怎么着?相比网站开发,做B端应用的小程序可是难多了。

我们先来看下小程序开发时遇到的2大难题。首先是双线程问题,这可是让我们伤透脑筋;其次就是页面间的互动,也是烦得让人头大。

那你们考虑过怎么解决这个问题吗?告诉你,我有个超好主意。其实我们可以用缓存搞定取数和页面加载的问题。简单来说,就是在转向前先存下请求,然后跳转后再拉出处理。这样做的话,咱俩就都能解决问题!

const promiseCache = new Map()
export function setCachePromise(key, promise) {
 promiseCache.set(key, promise)
}
export function getCachePromise(key) {
 // 根据key获取当前的数据 
 const promise = promiseCache.get(key)
 // 用完删除,目前只做中转用途,也可以添加其他用途
 promiseCache.delete(key)
 return promise 
}

别忘了,如果只能选搭车的话,不如就在每一次折腾一下UI,这样对各种情况都能应对得来~

小程序开发:双线程难题破解

// 导入 setCachePromise 函数
Component({
 methods: {
 getBookData(id) {
  const promise = // promise 请求
  setCachePromise(`xxx:${id}`, promise)  
 }, 
 handleBookDetailShow(e) {
  const id = e.detail
  this.getBookData(id)
  wx.navigateTo({url: `xx/xx/x?id=${id}`})
 }
 }
})

确实,如果你要更轻松的方法,了解一下微信小程序的提速小诀窍和wxpage框架!别忘了,用户可能会碰到各种情况比如硬件或者网速慢等等。这样做优化绝对值!

// 导入 getCachePromise 函数
Component({
 properties: {
  id: Number 
 },
 lifetimes: {
  attached () {
  const id = this.data.id 
  // 取得全局缓存的promise
  const bookPromise = getCachePromise(`xxx:${id}`)
  bookPromise.then((res) => {
   // 业务处理
  }).catch(error => {
   // 错误处理 
  })
  }
 },
 methods: {
  getBook() {
  // 获取数据,以便于 错误处理 上拉刷新 等操作 
  } 
 }
})

还有,微信小程序为了让你少等会儿,准备好定期更新和提前拉取数据!这样咱们就能把应用搞得更顺手。

最后,告诉你个小窍门儿。你要是在详情页那儿改删了数据,再回到列表那,直接按照刚刚存的查询条件搜就是!不过得提醒一句这种方法移动端用不了,因为它没滑动浏览功能!

你们想过怎么让用户知道数据变了吗?咱们其实能用好几种方法搞定。比如我们能提醒用户数据变了,让他们自己决定要不要刷个新;还可以用些特别的技巧告诉他们应该刷新页面。今儿我给大家讲了小程序编程里头一些头疼的问题以及解决办法。希望能帮到你们!如果还有啥想法或疑惑别忘了跟我说说!赞一下,转个发也是对我最大的鼓励谢谢大伙儿!

原文链接:https://www.icz.com/technicalinformation/web/2024/03/11423.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?