如何通过预加载器提升网页加载速度

预加载器(Pre-loader)可以说是提高浏览器性能最重要的举措。Mozilla 官方发布数据,通过预加载器技术网页的加载性能提升了19%,Chrome测试了 Alexa 排名前2000名网站,性能有20%的提升。

它并不是一门新技术,有人认为只有 Chrome 才具备这个功能。也有人认为它是有史以来提升浏览器性能最有效的方法。如果你第一次接触预加载器,也许心中已经有了无数个问号。什么是预加载器?它是如何提升浏览器性能的?

首先需要了解浏览器是如何加载网页的

一个网页的加载依赖于脚本文件、CSS样式文件。让我们看看浏览器加载网页的过程。

首先,浏览器下载 HTML 并开始解析。如果浏览器发现外部CSS资源链接则发送下载请求。

浏览器可以在下载CSS资源的同时,并行解析HTML文件,但是,一旦发现有脚本文件的引用,则必须等待脚本文件完成下载并且执行后才能继续解析。

脚本文件完成下载并且执行后,浏览器可以继续解析HTML工作,如果遇到非阻塞资源 i.e. 图片浏览器会发送下载请求并且继续解析。

即使浏览器可以并行执行多个请求,但是无法与针对脚本文件的操作并行执行。

可以通过IE7打开链接中的网页进行测试。我们可以看到,网页head标签内包含2个样式文件和2个脚本文件。在body 中,包含3个图片、1个脚本文件。

通过瀑布流我们可以查看资源加载的过程:

脚本文件的下载和执行,会阻断其他资源文件的下载,无疑将大大降低浏览器性能。

预加载器如何提高网络利用率

2008 年,IE、WebKit和Mozilla都实现了预加载器功能,来提升网络的利用率,改善脚本文件对其他资源文件的阻塞现状。

当浏览器被脚本文件阻塞时,另一个轻量级的解析器会继续浏览剩余的标记,寻找需要下载的资源i.e. 样式文件, 脚本文件,图片 等。

一旦发现,预加载器既可以在后台开始接收这些资源,等待主解析器完成当前的脚本操作,其他资源已经完成下载,这样就减轻了脚本阻塞带来的性能损耗。

下面这个瀑布流是使用IE8打开链接中网页的结果,性能有显著的提升:IE8=7S > IE7=14S。

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/tools/

预加载功能仍然是各大浏览器厂商乐此不疲的实验领域。很多浏览器尝试设置资源下载的优先级。例如,Safari降低了不作用于当前视图区域样式文件的优先级。Chrome 则设置脚本文件的优先级高于图片,即使脚本文件位于HTML底部。

预加载器的陷阱

预加载器只能检索HTML标签中的URL,无法检测到使用脚本代码添加的URL,直至脚本代码执行时才可以获取这类资源。

我曾经遇到过一个通过javascript判断当前Window宽度,进而决策加载CSS样式文件的例子。预加载器无法识别此类资源。

<html>
<head>
 <script>
 var file = window.innerWidth < 1000 ? "mobile.css" : "desktop.css";
 document.write('<link rel="stylesheet" type="text/css" href="css/' + file + '"/>');
 </script>
 </head>
 <body>
 <img src="img/gallery-img1.jpg" />
 <img src="img/gallery-img2.jpg" />
 <img src="img/gallery-img3.jpg" />
 <img src="img/gallery-img4.jpg" />
 <img src="img/gallery-img5.jpg" />
 <img src="img/gallery-img6.jpg" />
 </body>
</html>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索网页
, 文件
, 浏览器
, 脚本
, ie 下载 chrome
, 性能
, 文件流解析
, 加载文件
, 一些资源文件无法加载
, 加载资源
, 资源
, 无法加载设计器
, 预加载
批量预加载
提升网页加载速度、如何提升网页加载速度、提升页面加载速度、mui提升加载速度、提升网站加载速度,以便于您获取更多的相关知识。

时间: 2024-10-31 17:44:04

如何通过预加载器提升网页加载速度的相关文章

用 Flask 来写个轻博客 (28) — 使用 Flask-Assets 压缩 CSS/JS 提升网页加载速度

目录 目录 前文列表 扩展阅读 Flask-Assets 将 Flask-Assets 应用到项目中 前文列表 用 Flask 来写个轻博客 (1) - 创建项目 用 Flask 来写个轻博客 (2) - Hello World! 用 Flask 来写个轻博客 (3) - (M)VC_连接 MySQL 和 SQLAlchemy 用 Flask 来写个轻博客 (4) - (M)VC_创建数据模型和表 用 Flask 来写个轻博客 (5) - (M)VC_SQLAlchemy 的 CRUD 详解 用

JS加载器如何动态加载外部js文件_javascript技巧

今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js var MiniSite=new Object(); /** * 判断浏览器 */ MiniSite.Browser={ ie:/msie/.test(window.navigator.userAgent.toLowerCase()), moz:/gecko/.test(window.navigator.userAgent.toLowerCase()), opera:/opera/.test(windo

网页加载缓慢怎么办?网页加载缓慢解决方法

方法一,利用工具修改(推荐使用360) 1.在电脑中我们打开360安全软件,然后在打开的软件界面我们点击"电脑助手"如下图所示. 2.现在我们进入到了电脑援助界面我们在搜索框输入"网页加载缓慢"再点击搜索,如下图所示. 3.在搜索结果页面会有我们问题相关的解决方案了,我们点击"立即修复"即可解决了. 方法二, 整理磁盘碎片法 1.在桌面电脑我的电脑进入,然后右击要清理的盘,在弹出菜单点击"属性--磁盘清理"点击进入,如图所示.

百度统计网站速度诊断,提升网页加载速度

一个网站上网页的加载速度,是用户体验的一个重要指标,是网站留给访客的第一印象.据国外研究显示,网站打开速度一旦超过4秒,就开始流失访客,当然也流失后续的流量.点击.转化等. 更快的网站速度不仅能改善用户体验,还能降低运营成本,对网站质量有整体的提升.所以,对于站长来讲,重视并不断优化自己http://www.aliyun.com/zixun/aggregation/18434.html">网站页面的打开速度是一件非常重要的工作. 既然网站速度这么重要,您可以通过何种方式关注或改善您网站的速

提升网页加载速度和体验 谈图片优化的方法

在网站优化中,如果图片优化得好,不但可以提高页面的加载速度,提升网站的用户体验,而且还可以通过图片优化来节省网站的带宽.那么作为页面构建工程师应该采用什么方法来优化图片,既能保证UI的还原度,又使图片最精简呢?下面我就个人经验,来简单介绍一下图片优化的方法,首先我们了解一些图片方面的知识: 1. 矢量图与位图. 矢量图:缩放.旋转不失真的图像格式,不管你离多近去看都看不到图形的最小单位.存储的文件较小,但是很难表现色彩层次丰富的逼真图像效果.你可以理解成完美的圆型.抛物线等形状. 位图:又叫栅格

优化Jquery,提升网页加载速度_jquery

总是从ID选择器开始继承 在class前使用tag 将jquery对象缓存起来 掌握强大的链式操作 使用子查询 对直接的DOM操作进行限制 冒泡 消除无效查询 推迟到 $(window).load 压缩js 全面掌握jquery库 1. 总是从ID选择器开始继承 在jquery中最快的选择器是ID选择器. 因为它直接来自于Javascript的getElementById()方法. 复制代码 代码如下: <div id="content"><form method=&

DocumentCompleted不大准确,怎样让判断WebBrowser加载一个FlASH网页 加载完毕 然后在进行其他操作

问题描述 我用的是多线程操作加载网页是主线程然后操作给它放在子线程里面主线程跑起来10秒后在运行子线程这个不大方面和通用哪个大侠有好得方法啊!!!!! 解决方案 解决方案二:估计没有这样的event.DocumentCompleted的意思是html文档被载入完成.图片,flash什么的可能还没有被载入.只能用个定时器什么的了.参考下面讨论:HowtoknowthatWebBrowsercontrolhasfinishedloadingallcontentincludingflash?

用凭据管理器提升Windows 7访问速度

在登录远程计算机或者访问站点时,我们通常要输入用户名和密码信息.这些重复性的操作会影响我们的工作效率和使用体验,其实对于本地用户来说我们完全可以将这些访问凭据(用户.密码.证书等)保存在本地,在访问时有系统自动完成凭据的认证过程,这无疑会提高我们的工作效率.凭据管理器就是这样一个系统组件,可帮助我们完成本地访问时的认证工作.其实,这个组件从Vista中就有了,但无疑Windows 7中的凭据管理器在功能上更强一些,实用性也更大. 打开"控制面板",显示所有控制面板项,可找到"

js实现网页图片延时加载 提升网页打开速度_javascript技巧

提升网页加载速度的方法有很多种,用 jquery.lazyload.js 实现图片异步延迟加载,对于页面包含图片较多的网站来说,会是个不错的提升网页打开速度的方法.代码君网站栏目页列表左侧,在PC端预览时能看到一个文章略缩图展示模块,一定程度上会延长网页加载时间.本文采用图片异步延迟加载的方法,来提升本站页面加载速度. 图片异步加载,就是不必一次性把页面的所有图片都加载显示出来,等用户滑动滚动条到某个位置时才会加载显示相应位置的图片,这样能很好地提升网页加载速度,进一步提升用户体验. 有很多技术