问题:
当小程序图片页面反复跳转时,或者微信打开小程序页面之后,处于后台运行。
图片加载不出来,我图片加载是通过bindload事件不判断是否下载完成再显示。但是现在bindload不触发,一直显示加载层。
分析:
其原因就在于,小程序的优化机制,多次加载同一张图片,往往会从缓存中读取,而不是从网络下载,这就导致 bindload 事件不会触发了。

解决:
前端加载图片url的时候,在后面加一串随机数,这样小程序每次都会认为是新图片,不会从缓存中读取了。这个方法简单,就是会浪费一些性能和流量。
.wxml
<view class="item-left">
<image src="/images/mall/loading.gif" class="loading-img" hidden="{{imgShow}}"></image>
<image fade-in mode="aspectFill" show-menu-by-longpress src="{{imgsrc}}" class="product-img br16"
hidden="{{!imgShow}}" lazy-load data-imgsrc="{{imgsrc}}"
data-index="{{itemIndex}}" bindload="handlePictureLoadEvent"></image>
</view>
.js
imgsrc =`${imgsrc}?t=${Math.random()}`//防止触发图片load事件失败
本文讲述了在微信小程序中,图片页面频繁跳转或后台运行时,bindload事件不触发导致图片加载不出来的问题。解决方法是在图片URL后添加随机数,让小程序认为每次请求的是新图片,从而从缓存中重定向到网络加载。虽然影响性能和流量,但能确保图片正常加载。
1520

被折叠的 条评论
为什么被折叠?



