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实现滚动的齿轮动画效果
Jun 05 HTML / CSS
用纯css3实现的图片放大镜特效效果非常不错
Sep 02 HTML / CSS
canvas实现图片马赛克的示例代码
Mar 26 HTML / CSS
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
Jan 03 HTML / CSS
html5-websocket基于远程方法调用的数据交互实现
Dec 04 HTML / CSS
HTML中fieldset标签概述及使用方法
Feb 01 HTML / CSS
用html5实现语音搜索框的方法
Mar 18 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
Sep 25 HTML / CSS
基于HTML5代码实现折叠菜单附源码下载
Nov 27 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
Nov 22 HTML / CSS
纯html+css实现奥运五环的示例代码
Aug 02 HTML / CSS
使用canvas仿Echarts实现金字塔图的实例代码
Nov 11 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
discuz图片顺序混乱解决方案
2015/07/29 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
jquery实现类似淘宝星星评分功能有截图
2014/09/15 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
python连接oracle数据库实例
2014/10/17 Python
Django model select的多种用法详解
2019/07/16 Python
200行python代码实现2048游戏
2019/07/17 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
经典广告词大全
2014/03/14 职场文书
煤矿安全生产标语
2014/06/06 职场文书
销售人员求职信
2014/07/22 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
会计人员岗位职责
2015/02/03 职场文书
监护人证明
2015/06/19 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
婚宴新郎致辞
2015/07/28 职场文书
python字符串的一些常见实用操作
2022/04/06 Python