简单解释

懒加载顾名思义,很懒,所以用到时才开始加载,不用不加载。

预加载,预,提前的意思。没用到时就先加载完等着。

应用范围

图片的预加载与懒加载主要目的就是减少用户等待的时间,提高用户体验。对于多图页面,比如相册展示。一次性加载过多图片会使用户进入页面速度变慢。这时我们就可以使用懒加载假装自己页面很快。而有些图片不多的页面,我们在用户进入这个页面前需要提前把图片加载完成,来保证其他样式功能正常,这时我们使用预加载提升稳定性。

原理

懒加载: 初始置src属性为空,或者全部为“加载中”提示图的路径。监听页面滚动,当图片标签即将进入可视区域时给src重新赋值。此时图片开始加载。

预加载:在进入页面前通过js加载需要的图片到浏览器缓存,浏览器刷新前,同样的图片路径请求会被跳过,直接使用缓存中的文件。

代码详解

下面主要针对vue做代码详解,也是对上面理论的应用举例。

懒加载:如下图,红框中是通过的isLoadStart状态控制图片加载时机,当isLoadStart为true时开始加载图片。

图1.vue标签

如图2,就是控制isLoadStart的方法,通过以下方法我们可以开启图片加载。

图中 toTop是图片举例页面全内容顶部的距离,clientHeight是可视区域的高度,scrollTop是滚动条与页面内容顶部的距离。因此 toTop - scrollTop就是图片顶部与可视区域顶部的距离。所以当这个距离小于可视区域高度时就说明图片进入可视区域了。本次我设置提前100像素就开始加载。

图2.验证函数

我们已经有了验证函数,那么我们还需要触发验证。我们可以设置事件监听,或者定时器。

如图3我设置了滚动条滚动事件的监听,当滚动条滚动期间做验证。如果用定时器需要记得释放。

图3.设置监听

预加载:之前我使用vux的scroller时发现第一次进入多长图页面无法拖动。后来调查分析是图片加载影响,因为是多长图,只限制宽度,高度自适应。所以未加载出图像时没有高度。因此我需要做个预加载。在页面跳转前,我做了如下操作。遍历目标图片集合,待加载完成onload后再跳转路由。其中count为计算加载到第几张图片。

图4.预加载

转载到其他平台需含本文的简书链接

php 解决vue图片预加载,vue中图片预加载懒加载相关推荐

  1. VUE项目中图片加载过大处理方式-渐进式方式-懒加载方式--附源码

    解决有两步: 1.采用渐进式加载:原图未加载完时显示比它内存小的模糊图: 2.采用懒加载:只加载可视区域的图片,即滚动到可视区域时再加载图片 vue-lazyload-img:VUE图片懒加载插件 v ...

  2. android百度地图覆盖物异步加载图片,Android 百度地图marker中图片不显示的解决方法(推荐)...

    目的: 根据提供的多个经纬度,显示所在地的marker样式,如下: 问题: 1.发现marker中在线加载的图片无法显示出来: 2.获取多个对象后,却只显示出了一个marker: 以下为官网实现方法: ...

  3. java 懒加载原理_SpringBoot新特性之全局懒加载机制

    关于延迟加载 在 Spring 中,默认情况下所有定的 bean 及其依赖项目都是在应用启动时创建容器上下文是被初始化的.测试代码如下: @Slf4j @Configuration public cl ...

  4. swift懒加载(lazy load)VS OC懒加载

    为什么80%的码农都做不了架构师?>>>    懒加载可以让你不用关心变量的创建时机,等到真正使用的时候才去创建并且能保证在使用的时候已经初始化完毕,在一定程度上可以提高性能. OC ...

  5. yy 服务器维护中 图片无法显示,解决简书图片不显示问题“系统维护中,图片暂时无法加载”...

    天突然发现之前的文章图片全部都这样了,我还以为图片丢了! 9949918-5bfb96c2b65b9c7e.png 但是其实图片还是可以访问的 配合 Chrome,Safari 扩展程序 Tamper ...

  6. div图片垂直居中 如何使div中图片垂直居中

    div相对与table对于图片的垂直居中支持的并不好,特别对于不同浏览器的兼容性来说,这里我们看下一个简洁的css解决方法:  在曾经的 淘宝UED 招聘 中有这样一道题目: "使用纯CSS ...

  7. php中怎么让图片没有缓存,关于项目中图片缓存的问题

    之前用的是iis所以可能没有这些问题,后来换了nginx之后发现图片缓存问题很严重,本项目用的是thinkphp5框架: 浏览器.runtime.session.cookie.加参数,后台,所有缓存都 ...

  8. java图片叠加_[原创]JAVA中图片上叠加文字的方法

    --sunfruit JDK:1.3.x以上 功能:下面是一个简单在图片上面叠加文字的方法,有朋友如果有这方面的问题,就起个了解的作用 代码如下: import java.io.IOException ...

  9. c#图片base64去转义字符_c#中图片与base64互相转换

    本教程说明如何在C#.NET Windows Forms Application中将图像转换为base64字符串,以及将base64字符串转换为图像. 您可以创建一个新的Windows窗体应用程序项目 ...

  10. php图片比例不失真,PHP中图片实现等比例不失真缩放

    笔者在设计http://www.cityxii.cn的主页过程中,有遇到图片缩放问题.由于页面的图片是从论坛里面抽取,而用户在论坛里面所发图片大小不一,展示出来难免会要变形. http://www.c ...

最新文章

  1. 推荐10个windows软件,让你的办公更高效
  2. Golang简单写文件操作的四种方法
  3. 区块链研习 | 区块链里所说的“智能合约”是什么? 本文作者:敖萌 编辑:温晓桦 2017-10-11 20:31 导语:谈到区块链,必然离不开“智能合约”这个词。我们在本系列的第一篇文章中提到“智能
  4. sympy随笔-python符号计算
  5. springboot(2.2.4)全局异常处理(RestControllerAdvice,ExceptionHandler)
  6. java thread sleep 效率_Thread.sleep(0):线程休眠0秒有什么意义!
  7. 宁波深化智慧城市建设开启智能交通新模式
  8. Android Bundle--ArrayMap详解
  9. android按钮防止重复点击事件,实例详解Android解决按钮重复点击问题
  10. 处理api返回的数据_API 乐队指挥家,网关服务正式上线
  11. android: a system image must be selected to continmue
  12. 时尚排毒法可用性到底多大? - 生活至上,美容至尚!
  13. 希尔伯特向量空间中的信号
  14. datagrid sortname如何定义多列_如何实现一个小说分页的功能
  15. [转载]url带中文参数显示乱码的问题
  16. JavaScriptJQ 004_JS闭包
  17. IOS开发之——硬件开发-蓝牙介绍(05)
  18. 得到app产品体验报告
  19. 无线通信模块的双卡单待
  20. 拉曼光谱避免荧光效应的方法

热门文章

  1. 韦东山 IMX6ULL和正点原子_正点原子Linux第十二章官方SDK移植试验
  2. matlab应用感想,矩阵matlab心得体会
  3. 红队——多层内网环境渗透测试
  4. python分析热点词汇_使用Python分析屈原《离骚》中高频词并生成词云图
  5. 【03】【JAVA基础】【String Binary相互转换】
  6. [MySQL故障] ERROR 1045 (28000): Access denied for user 'mmm_agent'@'exxx-tx.com' (using password: YES
  7. JavaSE 抽象类与接口的区别展示
  8. navigation 调试 -2- 机器人在行进中晃动问题
  9. 基于Qt的多客户端TCP通信设计(含源码)
  10. window下RabbitMQ和Erlang安装包,百度云盘免费下载