web图片资源加载与渲染时机笔记

浏览器的工作流程就不说了,网上有很多资料。

1.首先,页面中不是所有的<img>标签图片和样式表中的背景图片都会加载

2.当给一个元素设置了display:none属性(此元素为<img>或有背景图的其他元素),图片不会渲染出来,但是会加载。

3.设置了display:none属性的元素的子元素,样式表中的背景图片既不会渲染出来,也不会进行加载,而<img>标签的图片不会渲染,但会加载。

4.重复图片,浏览器只加载一次(熟悉浏览器特性的人都知道,浏览器在请求资源时,会先判断是否有缓存,如果有缓存且缓存未过期,则会从缓存中读取资源,不会再次请求)。

5.不存在元素的背景图片不会被加载。

6.伪类的背景图片不会被加载,只有在触发伪类的时候,伪类样式上的背景图片才会被加载。

应用

一、展位图,当使用样式表中的背景图片作为占位符时,要把背景图片转为base64格式。这是因为背景图片加载的顺序在<img>标签后面,背景图片可能会在<img>标签图片加载完成后才开始加载,达不到想要的效果。

二、预加载

1.若是小图标,可以合并成雪碧图。

2.把需要预加载的图片加到设置了display:none属性的元素背景图或<img>标签里。

3.在javascript创建img对象,把图片url设置到img对象的src属性里。

时间: 2025-01-02 15:50:22

web图片资源加载与渲染时机笔记的相关文章

Web图片资源的加载与渲染时机

此文研究页面中的图片资源的加载和渲染时机,使得我们能更好的管理图片资源,避免不必要的流量和提高用户体验. 浏览器的工作流程 要研究图片资源的加载和渲染,我们先要了解浏览器的工作原理.以Webkit引擎的工作流程为例: 从上图可看出,浏览器加载一个HTML页面后进行如下操作: 解析HTML -> 构建DOM树 加载样式 -> 解析样式 -> 构建样式规则树 加载javascript -> 执行javascript代码 把DOM树和样式规则树匹配构建渲染树 计算元素位置进行布局 绘制

css基础篇(一)——浏览器加载和渲染网页

1.介绍 虽然这篇是css笔记,但是做为web开发,天天和浏览器打交道,有必要先理理我目前了解的浏览器加载和渲染页面的过程. 2.页面加载和渲染流程 如图:(该篇重点是css,所以该图重点说明css渲染) 1.重建DOM树:渲染引擎开始解析html文档,转换树中的标签到DOM节点 2.构建渲染树:解析css,根据css选择器找到节点的样式,创建另外一个树———渲染树 3.布局渲染树:从根节点开始,计算出每一个元素的大小和位置 4.绘制渲染树:遍历渲染树将每个节点都绘制出来 整个流程简易描述:用户

浏览器渲染的工作流程和图片加载与渲染规则

1 浏览器渲染的工作流程 浏览器的工作原理.以Webkit引擎的工作流程为例,浏览器加载一个HTML页面后进行如下操作 解析HTML[遇到<img>标签加载图片] -> 构建DOM树 加载样式 -> 解析样式[遇到背景图片链接不加载] -> 构建样式规则树 加载javascript -> 执行javascript代码 把DOM树和样式规则树匹配构建渲染树[加载渲染树上的背景图片] 计算元素位置进行布局 绘制[开始渲染图片] 2 图片加载与渲染规则  页面中不是所有的&l

浏览器加载和渲染HTML的过程(标准定义的过程以及现代浏览器的优化)

先看一下标准定义的浏览器渲染过程(网上找的): 浏览器打开网页的过程 用户第一次访问网址,浏览器向服务器发出请求,服务器返回html文件: 浏览器开始载入html代码,发现 head 标签内有一个 link 标签引用外部CSS或JS文件: 浏览器又发出CSS及JS文件的请求,服务器返回这个CSS,JS文件: 浏览器继续载入html中 body 部分的代码,并且CSS,JS文件已经拿到手了,可以开始渲染页面了: 浏览器在代码中发现一个 img 标签引用了一张图片,向服务器发出请求.此时浏览器不会等

浏览器页面加载解析渲染机制(一)

mark一下zhq[2]. 前言:首先这个标题对我来说有不甚了解,这里引用了一些好的技文内容,分享一下我的一些理解,如果有说错的望评论里狠狠打脸,以共勉之. 一:为什么要了解浏览器渲染页面和加载页面机制,主要还是性能的优化. 了解浏览器如何进行加载,我们可以在引用外部样式文件,外部js时,将他们放到合适的位置,使浏览器以最快的速度将文件加载完毕. 了解浏览器如何进行解析,我们可以在构建DOM结构,组织css选择器时,选择最优的写法,提高浏览器的解析速率. 了解浏览器如何进行渲染,明白渲染的过程,

浏览器加载、渲染机制

问题:为什么有些网站打开的时候会加载会很慢,而且是整个页面同时显示的,而有些网站是从顶到下逐步显示出来的? 想写出一个最佳实践的页面,可以从浏览器的加载.解析.渲染来开始了解. 了解浏览器如何进行加载,我们可以在引用外部样式文件,外部js时,将他们放到合适的位置,使浏览器以最快的速度将文件加载完毕. 了解浏览器如何进行解析,我们可以在构建DOM结构,组织css选择器时,选择最优的写法,提高浏览器的解析速率. 了解浏览器如何进行渲染,明白渲染的过程,我们在设置元素属性,编写js文件时,可以减少"重

web.xml加载顺序详解

web.xml加载顺序 1.先加载<context-param>标签 2.创建servletContext容器 3.把<context-parame>标签中数据转化成键值树交给servletContext容器 4.创建Listener实例 5.加载filter(过滤器) 6.加载Interceptor(拦截器) 7.加载servlet 注:filter加载顺序:根据web.xml中<filter-mapper>来决定 servlet一样如此 1.自定义Listener,

web.xml加载顺序

web.xml加载顺序 应用服务器启动时web.xml加载过程,至于这些节点在xml文件中的前后顺序没 有关系,不过有些应用服务器,我曾碰到过的 websphere就严格要求web.xml的 节点顺序,否则部署不成功,所以还是赞成按照web.xml标准格式写 content-param --> listener --> filter --> servlet 1.启动WEB项目的时候,应用服务器会去读它的配置文件web.xml.读两个节 点:<listener></lis

浏览器加载和渲染html的顺序

浏览器加载和渲染html的顺序 1. IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的. 2. 在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完). 3. 如果遇到语义解释性的标签嵌入文件(JS脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载. 4. 样式表在下载完成后,将和以前下载的所有样式表一起进行解析,解析完成后,将对此前所有元素(含以前已经渲染的)重新进行渲染. 5. JS.CSS中如有重定义,后定义函