【javascript】图片预加载

背景

  • 这个我今天才知道还有这玩意,虽然这个技术用的有点不多了。
  • 我一开始听感觉好像没什么卵用,后来发现特定地方可以用用。
  • 主要讲原理和应用,这个实现起来有很多方式。

原理

  • 浏览器加载图片时请求会根据Img的src来请求图片,如果这个src事先已经请求过的,那么浏览器会直接拿缓存里的图片,而不会再次发起请求。所以有些地方图片src不变但图片换了个浏览器就不知道(比如用户多次上传图片),一般是url加个时间戳随机数什么的解决。
  • 这个预加载就利用这个缓存原理,事先找个地方偷偷藏起来加载,不让你看见,实际浏览器已经把这个图片拿到了,等到你真正看见这个图片的时候,图片已经渲染出来了。

应用

  • 这个实际会让用户多请求很多图片,一般是用在后续页面图片确定的情况。先保证用户把当前页面图片加载完成,然后加载后续页面图片。
  • 或者是利用加载完成事件来做过度动画和过度页面,这样体验感也非常好。

例子

  • 这个实现方法很多,图片藏起来加载即可,发请求也不一定用图片src,ajax什么的也行。
  • 通用例子,加载完成后一次显示图片,用slow3g可以看到明显区别:
<body>
<div class="pie">
  <div class="img"></div>
</div>
<script type="text/javascript">  
      if (document.images) {  
          img1 = new Image();  
          img1.src = "http://img5.imgtn.bdimg.com/it/u=2298824648,1812234339&fm=200&gp=0.jpg"
      }  
      img1.onload=function () {
        $('.img').append(img1)
      }
</script>  
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

业火之理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值