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 相关文章推荐
a标签的css样式四个状态
Mar 09 HTML / CSS
让IE可以变相支持CSS3选择器
Jan 21 HTML / CSS
详解css position 5种不同的值的用法
Jul 30 HTML / CSS
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
Aug 24 HTML / CSS
html5 学习简单的拾色器
Sep 03 HTML / CSS
HTML5边玩边学(2)基础绘图实现方法
Sep 21 HTML / CSS
HTML5 script元素async、defer异步加载使用介绍
Aug 23 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
Apr 26 HTML / CSS
htnl5利用svg页面高斯模糊的方法
Jul 20 HTML / CSS
HTML文本属性&amp;颜色控制属性的实现
Dec 17 HTML / CSS
CSS基础详解
Oct 16 HTML / CSS
css之clearfix的用法深入理解(必看篇)
May 21 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 array_intersect()函数使用代码
2009/01/14 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
python使用正则表达式提取网页URL的方法
2015/05/26 Python
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
2016/08/30 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
python读取并写入mat文件的方法
2019/07/12 Python
python tkinter窗口最大化的实现
2019/07/15 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
记者岗位职责
2014/01/06 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
银行贷款承诺书
2014/03/29 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
Elasticsearch 基本查询和组合查询
2022/04/19 Python