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 相关文章推荐
移动端rem布局的两种实现方法
Jan 03 HTML / CSS
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
Dec 30 HTML / CSS
css3动画事件—webkitAnimationEnd与计时器time事件
Jan 31 HTML / CSS
CSS3 绘制BMW logo实的现代码
Apr 25 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
Nov 13 HTML / CSS
CSS3 text shadow字体阴影效果
Jan 08 HTML / CSS
CSS3 Notes: -webkit-box-reflect实现倒影的实例
Dec 08 HTML / CSS
html5指南-1.html5全局属性(html5 global attributes)深入理解
Jan 07 HTML / CSS
html5将图片转换成base64的实例代码
Sep 21 HTML / CSS
Amaze UI 文件选择域的示例代码
Aug 26 HTML / CSS
CSS 实现多彩、智能的阴影效果
May 12 HTML / CSS
小程序实现悬浮按钮的全过程记录
Oct 16 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+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
2019/07/03 PHP
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
js实现多张图片延迟加载效果
2017/07/17 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
微信小程序解除10个请求并发限制
2018/12/18 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
wxPython实现分隔窗口
2019/11/19 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
个人求职简历的自我评价范文
2013/10/09 职场文书
计算机专业自荐信
2013/10/14 职场文书
洗手间标语
2014/06/23 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
人与自然的观后感
2015/06/18 职场文书
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python
Golang并发工具Singleflight
2022/05/06 Golang