原因分析
做小程序图片预加载功能的时候,发现切换页面后总是停留在预加载的图片上,多次调试后发现,是因为图片第一次加载的时候可以正常触发bindload,但是刷新之后图片有缓存,就不会再执行bindload了。
解决办法
解决方法是前端加载图片url的时候,在后面加一串随机数,这样小程序每次都会认为是新图片,不会有缓存
链接:https://www.jianshu.com/p/1b523bfb45aa
wxml部分:<image src="../images/xwbanner.png" mode="widthFix" bindload="imageLoad" style="width:{{ images[index].width }}rpxheight:{{ images[index].height }}rpx" ></image>
wxss部分:
image{
width:100%;
}
js部分:
Page({
data: {
images:{}
},
imageLoad: function(e){
var $width=e.detail.width,//获取图片真实宽度
$height=e.detail.height,
ratio=$width/$height //图片的真实宽高比例
var viewWidth=718, //设置图片显示宽度,左右留有16rpx边距
viewHeight=718/ratio //计算的高度值
var image=this.data.images
//将图片的datadata-index作为image对象的key,然后存储图片的宽高值
image[e.target.dataset.index]={
width:viewWidth,
height:viewHeight
}
this.setData({
images:image
})
},
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)