web前端图片预加载
是什么?
浏览器会缓存静态资源(hmtl/css/img等)。图片预加载就是让浏览器提前缓存图片,提升用户体验。
浏览器什么情况下会下载图片?
1,解析到html中img的src属性的时候
2,解析到background-image属性的url()的时候
3,在js中创建Image对象的之后给他的src属性赋上一个url之后浏览器就会发出请求。html中的img标签本质就是Image对象。html中每出现一个img标签,就有一个Image对象被创建。
// html
<img src="https://www.xxx.com/static/img/xxx.png" alt="">
// css
background:url('./src/static/images/goods1.png')
// js 在js中创建Image对象后给它赋上src属性的时候浏览器也会下载src指向的资源。
new Image().src = "https://www.xxx.com/static/img/xxx.png"
在哪里个阶段使用预加载?
反思:浏览器拿到一个HTML的时候第一件事情就是创建document对象然后解析HTML标签生成DOM树,当他解析到img标签的src属性的时候会立即向src指向的地址发出请求。这就代表我们定义在一个页面当中的img在页面初始的时候原本就会被统统下载。那我们为什么还要去自己下载这些图片?
结论:在index.html下载其他页面中需要用到的图片。
什么场景需要使用预加载?
像xx公司官方网站,这种展示类的页面中一般会有用于展示实力的比较大的轮播图和背景图。把这些图片提前下载下来,就能避免页面打开半天都是白茫茫的一片。
实现方式
实现预加载要做的只有一件事情,那就是在用到图片之前让浏览器提前缓存图片。
通过html:在index页面末尾定义多个img标签,达到提前下载的目的。
// 批量定义要下载的图片资源,定义display 阻止他们渲染到页面
<img src="xxx.xxx.xxx/static/img/xx1.xxx" style="display: none">
<img src="xxx.xxx.xxx/static/img/xx2.xxx" style="display: none">
<img src="xxx.xxx.xxx/static/img/xx3.xxx" style="display: none">
通过css:在css文件中通过background-image属性批量下载图片
<div id="preload" style="display:none"></div>
#preload{
// url中的图片会依次次请求过来。
background:url('./src/static/images/goods1.png');
background:url('./src/static/images/goods2.png');
background:url('./src/static/images/goods3.png');
}
通过js:批量创建Image对象,为它们的src属性赋上我们需要下载的图片URL
小结:
图片预加载的本质:让浏览器提前缓存之后要用到的图片。
好处:增强用户体验。
坏处:不管用不用的上都会吃用户流量,密集的下载会对服务器造成一定压力。
web前端图片预加载的更多相关文章
- Javascript图片预加载详解
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...
- 利用CSS、JavaScript及Ajax实现图片预加载的三大方法
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...
- 图片预加载和AJAX的图片预加载
利用js实现图片预加载,加载所需要图片的路径与名称即可,很容易实现,该方法尤其适用预加载大量的图片: <div class="hidden"> <script t ...
- 利用CSS、JavaScript及Ajax实现图片预加载的三大方法(转)
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...
- JQ封装图片预加载插件
我们知道,图片的加载,特别是资源较大的图片,加载相当耗费时间.为了提高用户体验,不得不使用图片预加载技术来提前加载,以提高用户在浏览时的流畅度. 先来弄明白图片的懒加载和预加载的不同: 1)概念:懒加 ...
- js图片预加载与延迟加载
图片预加载的机制原理:就是提前加载出图片来,给前端的服务器有一定的压力. 图片延迟加载的原理:为了缓解前端服务器的压力,延缓加载图片,符合条件的时候再加载图片,当然不符合的条件就不加载图片. 预加载 ...
- Javascript图片预加载详解 分类: JavaScript HTML+CSS 2015-05-29 11:01 768人阅读 评论(0) 收藏
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...
- 利用CSS、JavaScript及Ajax实现图片预加载的三大方法及优缺点分析
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...
- 再谈javascript图片预加载技术
图片预加载技术的典型应用: 如lightbox方式展现照片,无疑需要提前获得大图的尺寸,这样才能居中定位,由于javascript无法获取img文件头数据,必须等待其加载完毕后才能获取真实的大小然后展 ...
随机推荐
- Java学习之基本概念
1.java体系结构: j2se:是Java的标准版,用于标准的应用开. j2ee:是Java的企业版,用于企业级的应用服务,web服务开发. j2me:是Java的微型版,用户手机或嵌入式开发. p ...
- 随着ScrollView的滑动,渐渐的运行动画View
今天是实现了一个小功能的东西.看看效果图: 实现方式: 1.自己定义ScrollView 复写onScrollChange方法,来计算滑动的位置. 2.自己定义接口,通过接口来在ScrollVie ...
- unity常见问题之20题
1:天空盒有接缝怎么解决? 答:在贴图导入设置里设置Wrap Mode为"Clamp". 2: DDS格式怎么不显示? 答:Unity不支持DDS格式,Unity会将除DDS外的其 ...
- Android开发Tips(3)
欢迎Follow我的GitHub, 关注我的CSDN. 我会介绍关于Android的一些有趣的小知识点. 本文是第三篇, 其余第一篇, 第二篇. imageMogr2/auto-orient/stri ...
- Simple calculations
Description 有一个包括n+2个元素的数列a0, a1, ..., an+1 (n <= 3000, -1000 <= ai <=1000).它们之间满足ai = (ai- ...
- Kubernetes实战阅读笔记--2、架构和部署
安装Kubernetes “本书准备了4台虚拟机(CentOS 7.0系统)用于部署Kubernetes运行环境,包括一个Etcd.一个Kubernetes Master和三个Kubernetes N ...
- hadoop yarn namenode datanoe 启动异常问题解决 分析日志
cat logs/hadoop-root-datanode-hadoop1.log ********************************************************** ...
- IE6span 高度问题
IE6盒子的最小高度为20px,所以设置低于20px大小时,加上_overflow:hidden;
- 数据库连接池-配置 wallfilter
使用缺省配置的WallFilter <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSou ...
- SD/MMC异同
该文章转自:http://www.imhan.com/archives/12/ 经常看到SD/MMC这样的写法,在这里稍微总结一下SD卡和MMC卡的异同点吧. 首先,两者在外型的规格上是几乎一致的.而 ...