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 相关文章推荐
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
Dec 28 HTML / CSS
CSS3中currentColor关键字的妙用
Feb 27 HTML / CSS
CSS3媒体查询Media Queries基础学习教程
Feb 29 HTML / CSS
详解CSS3 Media Queries中媒体属性的使用
Feb 29 HTML / CSS
使用CSS3实现字体颜色渐变的实现
Aug 10 HTML / CSS
HTML5使用DOM进行自定义控制示例代码
Jun 08 HTML / CSS
全面解析HTML5中的标准属性与自定义属性
Feb 18 HTML / CSS
HTML5 Canvas入门学习教程
Mar 17 HTML / CSS
canvas简易绘图的实现(海绵宝宝篇)
Jul 04 HTML / CSS
HTML5中 rem适配方案与 viewport 适配问题详解
Apr 27 HTML / CSS
纯 CSS 自定义多行省略的问题(从原理到实现)
Nov 11 HTML / CSS
css如何把元素固定在容器底部的四种方式
Jun 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文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
解密效果
2006/06/23 Javascript
兼容ie和firefox js关闭代码
2008/12/11 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
动态标签 悬停效果 延迟加载示例代码
2013/11/21 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
js console.log打印对像与数组用法详解
2016/01/21 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
如何使用JavaScript检测空闲的浏览器选项卡
2020/05/28 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
python实现屏保计时器的示例代码
2018/08/08 Python
Series和DataFrame使用简单入门
2019/11/13 Python
Python如何对齐字符串
2020/07/30 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
教育科学研究生自荐信
2013/10/09 职场文书
鲜果饮品店创业计划书
2014/01/21 职场文书
化学专业自荐信
2014/05/28 职场文书
python 下载文件的几种方式分享
2021/04/07 Python
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python
解读Vue组件注册方式
2021/05/15 Vue.js