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教程(7):CSS3嵌入字体
Apr 02 HTML / CSS
css3 iphone玻璃透明气泡完美实现
Mar 20 HTML / CSS
一款纯css3实现的动画加载导航
Oct 08 HTML / CSS
CSS3实现文本垂直排列的方法
Jul 10 HTML / CSS
Html5如何唤起百度地图App的方法
Jan 27 HTML / CSS
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
Dec 09 HTML / CSS
HTML5中判断用户是否正在浏览页面的方法
May 03 HTML / CSS
详解HTML5 Canvas绘制时指定颜色与透明度的方法
Mar 25 HTML / CSS
html5使用Drag事件编辑器拖拽上传图片的示例代码
Aug 22 HTML / CSS
使用html5新特性轻松监听任何App自带返回键的示例
Mar 13 HTML / CSS
Canvas多边形绘制的实现方法
Aug 05 HTML / CSS
CSS 圆形进度栏
Apr 06 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 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
如何让一个json文件显示在表格里【实现代码】
2016/05/09 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
js实现分页功能
2017/05/24 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
[00:37]2016完美“圣”典风云人物:rOtk宣传片
2016/12/09 DOTA
Python脚本实现12306火车票查询系统
2016/09/30 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
python使用knn实现特征向量分类
2018/12/26 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
新电JAVA笔试题目
2014/08/31 面试题
文明教师事迹材料
2014/01/16 职场文书
大学生就业策划书范文
2014/04/04 职场文书
运动会演讲稿
2014/05/07 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
党校个人总结
2015/03/04 职场文书
优秀创业计划书分享
2019/07/19 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
mysql事务对效率的影响分析总结
2021/10/24 MySQL
特别篇动画《总之就是非常可爱 ~制服~》PV公开,2022年夏季播出
2022/04/04 日漫