怎样尽可能的缩短浏览器上页面渲染的时间

摘要: 怎样尽可能的缩短浏览器上页面渲染的时间,文章从以下几方面着手: 写出高效的css代码 避免使用css表达式 把css文件放在页面顶部 指定页面图片的尺寸 页面头部标明文档编码 一,写

怎样尽可能的缩短浏览器上页面渲染的时间,文章从以下几方面着手:

写出高效的css代码

避免使用css表达式

把css文件放在页面顶部

指定页面图片的尺寸

页面头部标明文档编码

一,写出高效的css代码

首先弄清浏览器解析html代码的过程:构建一个dom树,页面要显示的各元素都会创建到这个dom树当中。每当一个新元素加入到这个dom树当中,浏览器便会通过css引擎查遍css样式表,找到符合该元素的样式规则应用到这个元素上。css引擎查找样式表,对每条规则都按从右到左的顺序去匹配。

了解过程后,我们可以看出可以从两方面优化我们的css代码:1,定义的css样式规则条数越少越好,所以赶紧删除css文件中不必要的样式定 义;2,优化每条规则的选择符书写方式,尽量让css引擎一看就知道这个规则是否需要应用到当前这个元素上,让引擎少走不必要的弯路。

如以下几种效率不高的css书写方式:

body * {...}

hide-scrollbars * {...}

b, 用标签做关键选择符

ul li a {...}

#footer h3 {...}

* html #atticPromo ul li a {...}

c, 画蛇添足的写法

ul#top_blue_nav {...}

form#UserLogin {...}

d, 给非连接标签添加 :hover 伪类,这会对用了strict doctype的页面在IE7和IE8下变的很慢。

h3:hover {...}

.foo:hover {...}

#foo:hover {...}

div.faa :hover {...}

优化建议:

a, 避免使用通配符;

b, 让css引擎快速辨别该规则是否适用于当前元素:多用id或class选择符,少用标签选择符;

c, 不要画蛇添足把id和class或标签和class等连着写;

d, 尽量避免使用后代选择符,去除不必要的祖先元素,可以考虑使用class选择符来替换后代选择符;

/*给无序和有序的li定义不同颜色,你可能会这样写:*/

ul li {color: blue;}

ol li {color: red;}

/*给li添加class,这样定义效率会更高:*/

.unordered-list-item {color: blue;}

.ordered-list-item {color: red;}

e, 避免给非连接标签添加 :hover 伪类。

二,避免使用css表达式

css表达式仅在ie浏览器下才起作用,微软已在ie8后不推荐使用,因为它会严重影响页面性能:任何时候,不管任何一个事件被触发,例如窗口的 resize 事件,鼠标的移动等等,css表达式都会重新计算一遍。

三,把css文件放在页面顶部

把外联或内联样式表放在body部分会影响页面渲染的速度,因为浏览器只有在所有样式表下载完成后才会继续下载页面其他内容。另外,内联样式表(放在<style>内的样式)有可能会引起页面重新渲染或显示隐藏页面中的某些元素,建议不要使用内联样式表。

四,指定页面图片的尺寸

指定页面图片尺寸,要符合图片的真实尺寸(不要通过指定尺寸来缩放图片),可以避免尺寸改变导致的页面结构效果的变化,所以对加快页面渲染速度有益。

五,页面头部标明文档编码

HTML文档是以包含文档编码信息的数据流方式在网络间传输。页面的编码信息一般会在HTTP响应的头部信息或在文档内的HTML标记中指明。客户端浏览器只有在确定了页面编码后才能正确的渲染页面, 所以在绘制页面或执行任何的javascript代码前,大部分的浏览器(ie6、ie7、ie8除外)都会缓冲一定字节的数据来从中查找编码信息,不同 的浏览器当中预缓冲的字节数是不一样的。如果浏览器在接收到了设定的预缓冲数据量后还没有找到页面的编码信息,便会根据各自指定的默认编码开始渲染页面,如果这时再获取到页面编码信息,而又跟现在所用编码不一致,那整个页面就得重新渲染,某些情况下甚至需要重新获取数据。所以,对于大小超过1KB的页面(根据在各浏览器的测试情况,预缓冲数据量最多的也就1KB)应当尽早标明编码信息。

优化建议:

a, 尽量在HTTP头部信息中标明页面编码(这个需要在服务器端设置)。像Firefox浏览器,如果在HTTP头部信息就获取到了编码信息,便会预缓冲更少的数据从而减少不必要的数据缓冲时间;

b, 在HTML的 <head> 部分标明编码信息;

c, 要习惯给文档指定编码;

d, 给页面指定的编码要符合页面实际编码;如果你在HTTP头部信息和HTML标记中同时指定了编码,需确保编码信息一致。

时间: 2025-01-02 18:48:28

怎样尽可能的缩短浏览器上页面渲染的时间的相关文章

如何比较不同浏览器的页面加载时间

比较浏览器性能的通用方法 在比较不同浏览器的性能时,最重要的一条就是选择一些性能指标.通常,这些指标都来自标准化的Web API.关于性能比较, 可以使用Navigation Timing(导航计时),它是一个可以在web中精确测量性能的javascript API.这个API提供了一个简单的方法来获得页面导航.加载事件的精确而又详细的时间状态.需要注意的是,Navigation Timing的目的是用于分析页面整体性能指标.如果要获取个别资源(例如JS.图片)的性能指标,请使用Resource

在浏览器加载CSS 时防止影响页面渲染的方法

  本文展示了一种技术,它能通过异步下载样式表,以阻止它们的下载阻塞页面的渲染,从而尽可能快的让访问者获取到信息内容. 警告! 我发这篇帖子全是好意,但是它并不负责让读它的人意识到下面将会遇到的问题. 社区很快地给了我许多的反馈 (有些反馈我很感激) ,而越来越明显的是这项技术并不如我所希望的那样稳定. 不像我那样的成功地对它进行了测试和利用,许多开发者在 IE 和 Firefox 中都遇到了问题( F F测试版中直接崩溃) 而其他人则报告在 Chrome 和 Safari 中是成功的.我现在的

最近用jquery做了几个页面 发现$(&amp;amp;#39;document&amp;amp;#39;)在移动端浏览器上不运行

问题描述 最近用jquery做了几个页面 发现$('document')在移动端浏览器上不运行 公司最近需要几个能兼容移动端浏览器的页面,发现pc端上正常可以运行,但是移动端不能运行,将$(document).ready 去掉后,放在页面的最后就都可以运行吗 想问一下这是为什么啊 解决方案 $(document).ready(function(){.... })这个函数是用来取代页面中的window.onload;document.ready()和传统的方法 相似,不同的是onload()的方法

WAP页面在手机QQ浏览器上背景图不显示

问题描述 各位WAP高手帮帮忙,我做的wap页面在手机QQ浏览器上背景图不显示,在其他手机浏览器显示正常,这是什么问题导致的??? 解决方案 解决方案二:引用楼主gaofei019的回复: 各位WAP高手帮帮忙,我做的wap页面在手机QQ浏览器上背景图不显示,在其他手机浏览器显示正常,这是什么问题导致的??? 应该是兼容问题~·楼主好好查查代码吧解决方案三:楼主,你说的qq浏览器是在什么手机上?如果是塞班s60的话,确实是不支持的.塞班手机上的浏览器,如:ucweb和qq,以及其他的浏览器,基本

浅析前端页面渲染机制

作为一个前端开发,最常见的运行环境应该是浏览器吧,为了更好的通过浏览器把优秀的产品带给用户,也为了更好的发展自己的前端职业之路,有必要了解从我们在浏览器地址栏输入网址到看到页面这期间浏览器是如何进行工作的,进而了解如何更好的优化实践,本篇主要围绕这两点展开阐述.前端页面渲染机制可谓是老生常谈,但又很有必要再谈的话题,于是还是决定写一篇,即是对知识的回顾总结,又能与大家分享,何乐而不为.网上相关类型的文章也很多,有兴趣的可以多学习一下. 浏览器 在介绍浏览器工作流程之前,先了解一下主流浏览器的基础

border边框属性在浏览器中的渲染方式

分析border边框属性在浏览器中的渲染方式首发小志博客,如果感觉内容还不错而要转载的朋友请不要怜惜 http://blog.linxz.cn/ 这么一个URL,谢谢! 针对border边框属性在浏览器中的渲染方式很早以前就开始在QQ群中看到大家在讨论,而我也一直以border:0 none;的方式处理.其中当然也是有我自己为什么要做的原因,对于这个原因在下面的分析中将会提到.在对border边框属性进行分析之前,需要说明的几点内容是: 小志我并不是一个分析专家,只是借助Firebug和IE d

高性能滚动scroll及页面渲染优化

最近在研究页面渲染及web动画的性能问题,以及拜读<CSS SECRET>(CSS揭秘)这本大作. 本文主要想谈谈页面优化之滚动优化. 主要内容包括了为何需要优化滚动事件,滚动与页面渲染的关系,节流与防抖,pointer-events:none 优化滚动.因为本文涉及了很多很多基础,可以对照上面的知识点,选择性跳到相应地方阅读. 滚动优化的由来 滚动优化其实也不仅仅指滚动(scroll 事件),还包括了例如 resize 这类会频繁触发的事件.简单的看看: var i = 0;    wind

【转】浏览器加载渲染网页过程解析--总结(三)

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

理解浏览器关键的渲染路径

在in面试被CTO问到的问题,谨以此翻译来表达对自己知识匮乏的鄙视 :-1: . 当浏览器接收到从服务器发送过来的HTML页面信息,在将其绘画渲染到屏幕上之前会有许多的步骤要做.浏览器绘制页面需要做的这一系列行为我们称为 关键渲染路径. 了解 CRP 的知识对于你理解如何提升网站渲染效率非常有用, CRP 总共有六步: 构建DOM树 构建CSSOM树 运行 JavaScript 创建渲染树 生成布局 绘制页面 1. 构造DOM树 DOM(Document Object Model)树是一个表示全