HTML5 预加载让页面得以快速呈现


Posted in HTML / CSS onAugust 13, 2013

浏览器厂商和开发者之间共同努力的一个方向就是让网站更快。现在已有很多广为人知的加速解决方案:CSS sprites(CSS精灵,拼图)以及图像优化,分布式配置文件(.htaccess),JS/文本文件压缩,CDN加速等。

我在另一篇博文中介绍了 如何让网站更快。
FireFox推介一种新的网站加速策略: 链接预加载。什么是链接预加载?MDN描述如下:

预加载是一种浏览器机制,使用浏览器空闲时间来预先下载/加载用户接下来很可能会浏览的页面/资源。页面提供给浏览器需要预加载的集合。浏览器载入当前页面完成后,将会在后台下载需要预加载的页面并添加到缓存中。当用户访问某个预加载的链接时,如果从缓存命中,页面就得以快速呈现。

简单概述:网站根据用户分析,让浏览器后台下载指定页面/文档/图片,实现起来超easy:

HTML5预加载标签

复制代码
代码如下:

<!-- 页面,可以使用绝对或者相对路径 -->
<link rel="prefetch" href="page2.html" />
<!-- 图片,也可以是其他类型的文件 -->
<link rel="prefetch" href="sprite.png" />

从上面的HTML代码可以看出,预加载使用 <link> 标签,并指定 rel="prefetch" 属性,而href属性就是需要预加载的文件路径。而Mozilla还实现了一些类似的 link rel 属性:

复制代码
代码如下:

<link rel="prefetch alternate stylesheet" title="Designed for Mozilla" href="mozspecific.css" />
<link rel="next" href="2.html" />

备注: https 协议也同样支持。

何时需要预加载
网站是否采用预加载取决于你的需求,下面是一些建议:
- 如果一系列的页面幻灯片一样展示,那么可以预加载前后各1至3个页面.
- 加载网站内部通用的图片
- 在搜索结果页预加载下一页

阻止预加载
Firefox 允许禁止预加载模式,代码如下:

复制代码
代码如下:

user_pref("network.prefetch-next", false);

注意事项
关于链接预加载,有如下注意事项:
- 预加载可以跨域进行,当然,请求时cookie等信息也会被发送。
- 预加载可能破坏网站统计数据,而用户并没有实际访问。
- Mozilla Firefox 是目前唯一支持预加载模式的浏览器,(2003-2010)
你怎么认为呢?使用空闲时间下载额外的文件属于一种激进的优化
HTML / CSS 相关文章推荐
基于css3实现漂亮便签样式
Mar 18 HTML / CSS
一款CSS3实现多功能下拉菜单(带分享按)的教程
Nov 05 HTML / CSS
纯CSS3绘制打火机动画火焰效果
Jul 18 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
Nov 10 HTML / CSS
HTML5和以前HTML4的区别整理
Oct 20 HTML / CSS
HTML5 history新特性pushState、replaceState及两者的区别
Dec 26 HTML / CSS
html5组织内容_动力节点Java学院整理
Jul 10 HTML / CSS
html5唤起app的方法
Nov 30 HTML / CSS
关于canvas绘制模糊问题的解决方法
Sep 24 HTML / CSS
html5 video全屏播放/自动播放的实现示例
Aug 06 HTML / CSS
css3实现背景图片颜色修改的多种方式
Apr 13 HTML / CSS
CSS+HTML 实现顶部导航栏功能
Aug 30 HTML / CSS
HTML5的语法变化介绍
Aug 13 #HTML / CSS
Canvas与Image互相转换示例代码
Aug 09 #HTML / CSS
通过Canvas及File API缩放并上传图片完整示例
Aug 08 #HTML / CSS
HTML5新增的Css选择器、伪类介绍
Aug 07 #HTML / CSS
HTML5 自动聚焦(autofocus)属性使用介绍
Aug 07 #HTML / CSS
HTML5 placeholder(空白提示)属性介绍
Aug 07 #HTML / CSS
5个你不知道的HTML5的接口介绍
Aug 07 #HTML / CSS
You might like
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
php的socket编程详解
2016/11/20 PHP
JavaScript开发时的五个注意事项
2007/12/08 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
express的中间件basicAuth详解
2014/12/04 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
Python 下载及安装详细步骤
2019/11/04 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
HTML5中5个简单实用的API
2014/04/28 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
个人求职简历的自我评价
2013/10/19 职场文书
毕业生自我鉴定
2013/11/05 职场文书
安全事故检讨书
2014/01/18 职场文书
《将心比心》教学反思
2014/04/08 职场文书
医院院务公开实施方案
2014/05/03 职场文书
紧急迫降观后感
2015/06/15 职场文书
运动会宣传稿50字
2015/07/23 职场文书
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers