使用HTML5的链接预取功能(link prefetching)给网站提速


Posted in HTML / CSS onDecember 13, 2012

HTML5的链接预取功能(link prefetching)是一个埋在沙里的宝石,至今还很少人知道它的价值。 你可能已经知道了那古老而又闻名的图片预加载功能,链接预取功能就是将此概念由图片扩展到了网页内容(不需要任何AJAX代码)。
它是这样工作的:在页面上添加一个像这样的链接:

复制代码
代码如下:

<link rel="next" href="page2.html">

这样,当你的机器空闲时,浏览器就会自动的在后台把page2.html下载下来。 当用户最终点击了page2.html的链接时,浏览器会从缓存里把这个页面取出来,所以这个页面的加载速度会出乎意料的快。
目前只有火狐浏览器支持这个功能。但是因为火狐目前是世界上拥有第二大用户群的浏览器,所以只要你在HTML页面了加上这样的一句代码,仍有相 当大的一部分访问者能体验到这十分明显的页面加载速度的提高。很酷吧!

你可以在许多情况下可以使用链接预取功能
* 当你有一篇篇幅很长的文章,或在线教程,或图册等,需要分成多页显示时。
* 在你的网站首页预加载那些用户最可能访问的下一页。(可能是一个商品网站上“重点推荐”商品页面,或博客网站上最近的一篇博客)
* 搜索查询页面预加载搜索出来的前几条。
对于静态的内容你还可以使用rel标记实现预取功能:

复制代码
代码如下:

<link rel="prefetch" href="/images/big.jpeg?ca541d">

这里还有其它一些有趣的事需要注意:
* 链接预取功能不久将会在Opera, Chrome 和 Safari 浏览器里实现,但对于Internet Explorer,你估计要等到2020年。
* 如果这种功能被广泛的使用,它会影响你的网站日志和访问统计。请考虑这样的情况,你的一个页面预存取了好几个页面,可用户实际上没有访问到这几个页面。 你的服务器(或统计工具)并不知道这两者之间的区别。
为了分清这个,Firefox会在HTTP头信息里发送X-moz: prefetch信息,但你需要在服务器端有什么东西能识别这种信息。
HTML / CSS 相关文章推荐
css3绘制百度的小度熊
Oct 29 HTML / CSS
css3的@media属性实现页面响应式布局示例代码
Feb 10 HTML / CSS
CSS3实现千变万化的文字阴影text-shadow效果设计
Apr 26 HTML / CSS
详解CSS3中强大的filter(滤镜)属性
Jun 29 HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
Jan 17 HTML / CSS
在HTML5 canvas里用卷积核进行图像处理的方法
May 02 HTML / CSS
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
Jan 30 HTML / CSS
HTML5 placeholder(空白提示)属性介绍
Aug 07 HTML / CSS
在HTML5 Canvas中放入图片和保存为图片的方法
May 03 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
Nov 19 HTML / CSS
使用html2canvas实现将html内容写入到canvas中生成图片
Jan 03 HTML / CSS
canvas绘制太极图的实现示例
Apr 29 HTML / CSS
HTML5 实现一个访问本地文件的实例
Dec 13 #HTML / CSS
HTML4和HTML5之间除了相似以外的10个主要不同
Dec 13 #HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
Dec 13 #HTML / CSS
HTML5 新旧语法标记对我们有什么好处
Dec 13 #HTML / CSS
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
Dec 13 #HTML / CSS
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
Dec 09 #HTML / CSS
HTML5 Web Database 数据库的SQL语句的使用方法
Dec 09 #HTML / CSS
You might like
php使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
innerHTML中标签可以换行的方法汇总
2015/08/14 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
2016/12/30 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
Python3里的super()和__class__使用介绍
2015/04/23 Python
python字典DICT类型合并详解
2017/08/17 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
python调用摄像头显示图像的实例
2018/08/03 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
Django学习之文件上传与下载
2019/10/06 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
Python 解析简单的XML数据
2020/07/24 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
巴黎一票通:The Paris Pass
2018/02/10 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
C语言笔试集
2012/07/24 面试题
家长评语和期望
2014/02/10 职场文书
给老师的一封建议书
2014/03/13 职场文书
优秀创业计划书分享
2019/07/19 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python