资讯专栏INFORMATION COLUMN

小程序内存问题--图片懒加载

zsy888 / 3331人阅读

摘要:内存不足起因小程序对用户内存使用进行了限制,如果一个页面的图片过多,会导致内存不足的内部错误解决办法对图片进行懒加载,不影响体验的前提下,只渲染当屏的图片,屏外图片,显示缺省图实践分析图片最多的情况就是列表头图或图片列表,为了性能,一般会滚

内存不足起因

</>复制代码

  1. 小程序对用户内存使用进行了限制,如果一个页面的图片过多,会导致内存不足的内部错误
解决办法

</>复制代码

  1. 对图片进行懒加载,不影响体验的前提下,只渲染当屏的图片,屏外图片,显示缺省图
实践分析

图片最多的情况就是列表(头图或图片列表),为了性能,一般会滚动加载,而在小程序中,需要借助scroll-view/swiper组件,为了不影响用户体验,就不能让之前以渲染的列表元素失去占位

要判断元素是否在当屏,就要知道一些高度信息(屏幕高,滚动高度,元素高度),但是元素高度在小程序中不能动态获取,所以就需要列表时定高的

代码

wxml文件

</>复制代码

计算showIndex的方法,可作为公用方法

</>复制代码

  1. /**
  2. * offetHeight 滚动计算部分到顶部距离
  3. * scrollTop 滚动高度
  4. * height 每个模块的高度
  5. * colunm 列数
  6. **/
  7. function countIndex (offetHight, scrollTop, height, colunm) {
  8. // 单例获取屏幕宽度比
  9. if (!countIndex.pix) {
  10. try {
  11. let res = wx.getSystemInfoSync()
  12. countIndex.pix = res.windowWidth / 375
  13. } catch (e) {
  14. countIndex.pix = 1
  15. }
  16. }
  17. let scroll = scrollTop - offetHight * countIndex.pix
  18. let hei = height * countIndex.pix
  19. return scroll > 0 ? Math.floor(scroll / hei) * colunm : 0
  20. }

js文件

</>复制代码

  1. let wxTools = require("../../untils/wxTools.js")
  2. Page({
  3. data: {
  4. scrollData: {
  5. offetHeight: 15, // px
  6. height: 80, // px
  7. colunm: 3
  8. },
  9. showIndex: 0
  10. },
  11. scrollHide (e) {
  12. let data = [
  13. this.data.scrollData.offetHeight,
  14. e.detail.scrollTop,
  15. this.data.scrollData.height,
  16. this.data.scrollData.colunm
  17. ]
  18. let index = wxTools.countIndex(...data)
  19. this.setData({
  20. showIndex: index
  21. })
  22. }
  23. })

具体要渲染多少的元素,自己来定,这里没有放到countIndex中加入计算,例如wxml中的{{showIndex + 24 > index && showIndex - 6 < index}},会渲染30个元素的图片

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/50316.html

相关文章

  • 程序内存问题--图片加载

    摘要:内存不足起因小程序对用户内存使用进行了限制,如果一个页面的图片过多,会导致内存不足的内部错误解决办法对图片进行懒加载,不影响体验的前提下,只渲染当屏的图片,屏外图片,显示缺省图实践分析图片最多的情况就是列表头图或图片列表,为了性能,一般会滚 内存不足起因 小程序对用户内存使用进行了限制,如果一个页面的图片过多,会导致内存不足的内部错误 解决办法 对图片进行懒加载,不影响体验的前提下,只...

    Jiavan 评论0 收藏0
  • 程序内存问题--图片加载

    摘要:内存不足起因小程序对用户内存使用进行了限制,如果一个页面的图片过多,会导致内存不足的内部错误解决办法对图片进行懒加载,不影响体验的前提下,只渲染当屏的图片,屏外图片,显示缺省图实践分析图片最多的情况就是列表头图或图片列表,为了性能,一般会滚 内存不足起因 小程序对用户内存使用进行了限制,如果一个页面的图片过多,会导致内存不足的内部错误 解决办法 对图片进行懒加载,不影响体验的前提下,只...

    Barry_Ng 评论0 收藏0
  • 设计无限滚动下拉加载,实践高性能页面真谛

    摘要:论坛上有过这么一篇热门文章,它从角度分析了无限滚动加载的设计实践。无限滚动加载背后的技术挑战其实比想象中要多不少。整体思路和方案设计我们要实现的页面样例如图,它能够做到无限下拉加载内容。 UX Planet论坛上有过这么一篇热门文章: Infinite Scrolling Best Practices,它从UX角度分析了无限滚动加载的设计实践。 无限滚动加载在互联网上到处都有应用:豆瓣...

    Hanks10100 评论0 收藏0
  • 设计无限滚动下拉加载,实践高性能页面真谛

    摘要:论坛上有过这么一篇热门文章,它从角度分析了无限滚动加载的设计实践。无限滚动加载背后的技术挑战其实比想象中要多不少。整体思路和方案设计我们要实现的页面样例如图,它能够做到无限下拉加载内容。 UX Planet论坛上有过这么一篇热门文章: Infinite Scrolling Best Practices,它从UX角度分析了无限滚动加载的设计实践。 无限滚动加载在互联网上到处都有应用:豆瓣...

    novo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<