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教程(9):设置RGB颜色
Apr 02 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
Mar 29 HTML / CSS
用CSS3实现瀑布流布局的示例代码
Nov 10 HTML / CSS
利用css3径向渐变做一张优惠券的示例
Mar 22 HTML / CSS
Css3实现无缝滚动防抖
Sep 14 HTML / CSS
HTML5 WebGL 实现民航客机飞行监控系统
Jul 25 HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
Jan 09 HTML / CSS
将HTML5 Canvas的内容保存为图片借助toDataURL实现
May 20 HTML / CSS
用HTML5制作数字时钟的教程
May 11 HTML / CSS
css3 filter属性的使用简介
Mar 31 HTML / CSS
HTML通过表单实现酒店筛选功能
May 18 HTML / CSS
CSS filter 有什么神奇用途
May 25 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
日本十大惊悚动漫
2020/03/04 日漫
东方红 - 来复式再生机的修复
2021/03/02 无线电
松下Panasonic RF-B65电路分析
2021/03/02 无线电
浅谈php自定义错误日志
2015/02/13 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
canvas绘制七巧板
2017/02/03 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
Python读写Excel文件方法介绍
2014/11/22 Python
PyQt5实现简易计算器
2020/05/30 Python
Python如何基于rsa模块实现非对称加密与解密
2020/01/03 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
Pandas中DataFrame基本函数整理(小结)
2020/07/20 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
MIS软件工程师的面试题
2016/04/22 面试题
餐厅总厨求职信
2014/03/04 职场文书
外贸专业求职信
2014/03/09 职场文书
售后服务承诺书怎么写
2014/05/21 职场文书
2016年企业先进员工事迹材料
2016/02/25 职场文书
合同范本之电脑出租
2019/08/13 职场文书
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电