F-loat / mpvue-wxParse

📰适用于 Mpvue 的微信小程序富文本解析自定义组件
MIT License
378 stars 68 forks source link

能支持图片懒加载吗? #12

Open fangdiao opened 6 years ago

fangdiao commented 6 years ago

若富文本图片较多时,会导致页面非常卡顿

F-loat commented 6 years ago

应该是可以实现的,但是我最近估计没时间做,

fangdiao commented 6 years ago

大佬能说下实现原理吗,我自己试着做下

F-loat commented 6 years ago

看了下 image 元素从 1.5.0 起有了 lazy-load 属性,这个属性能满足需求吗,自己做应该是要用到 wx.createSelectorQuery 这个 api 才行,也要 1.4.0 才支持

fangdiao commented 6 years ago

请问使用wx.createSelectorQuery的目的是什么,直接在富文本转换的时候就加上lazy-load,这样可以吗

F-loat commented 6 years ago

嗯,lazy-load 这个属性我最近加一下,需要通过 wx.createSelectorQuery 取得元素的位置信息的吧

fangdiao commented 6 years ago

我看文档没有说明需要image元素的位置信息,只需要在page或者scroll-view中。应该是给image加上lazy-load就行了

F-loat commented 6 years ago

对。。我是说自己实现的话需要那个

fangdiao commented 6 years ago

ok,我先给图片加上lazy-load

F-loat commented 6 years ago

嗯,预计会把图片相关的属性统一下,只保留一个 image 属性,以对象的形式传入,然后版本号改到 0.5.0 吧

fangdiao commented 6 years ago

大佬预计什么时候改,我比较急,今天验收了。

F-loat commented 6 years ago

你先自己改下,我今天会弄,但是得先测试下

fangdiao commented 6 years ago

ok,感谢大佬

F-loat commented 6 years ago

@fangdiao 更新了,你可以试试看

fangdiao commented 6 years ago

没反应额,大佬。我再手机上查看元素时加上lazy-load属性了的。但是还是一来加载全部图片,是不是少了什么

F-loat commented 6 years ago

文档里有写只对 page 和 scroll-view 中的图片生效,可能和这个有关系吧

fangdiao commented 6 years ago

用了scroll-view还是么反应。小程序最外层就是一个,自己加了page也还是不行。有毒

F-loat commented 6 years ago

给你提供个自己实现的思路,

  1. 通过一个属性把页面当前滚动到的位置传给 wxparse
  2. 在 wxparse 里 watch 这个属性
  3. transData.images 中的各项与 wxParseImg 组件中的 node 属性是对应着指向同一个对象的,所以遍历这个数组把 src 备份后设置为一张占位图即可
  4. 通过 wx.createSelectorQuery 可以获得各图片的位置信息,然后直接保存在 transData.images 里对应的对象中即可
  5. 当滚动到一定位置时,修改相应图片的 src 值,在 js 里加载完成再改更好点
fangdiao commented 6 years ago

好的,感谢大佬。明天我试试。

ReedZuo commented 6 years ago

请问里面的startHandler自定义事件怎么用啊?我是小白,大神求助,这个startHandler是不是和小程序的监听触摸开始事件touchstart功能类似?在线等....

F-loat commented 6 years ago

@ReedZuo 不是的,那几个不是事件,是 html 解析函数的几个钩子,目前的事件只有 preview 和 navigate 两个

ReedZuo commented 6 years ago

@F-loat 多谢大佬解疑

htfcumt2004 commented 6 years ago

最新版本解决图片懒加载的问题了吗?

F-loat commented 6 years ago

@htfcumt2004 目前没有做额外处理

htfcumt2004 commented 6 years ago

刚才在看还没能够懒加载