使用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 box-sizing属性
Apr 17 HTML / CSS
CSS3 简单又实用的5个属性
Mar 04 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
Feb 11 HTML / CSS
总结30个CSS3选择器
Apr 13 HTML / CSS
Html5新增标签与样式及让元素水平垂直居中
Jul 11 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
Jan 31 HTML / CSS
基于HTML5代码实现折叠菜单附源码下载
Nov 27 HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
Jan 11 HTML / CSS
纯HTML5+CSS3制作生日蛋糕(代码易懂)
Nov 16 HTML / CSS
Canvas图片分割效果的实现
Jul 29 HTML / CSS
CSS实现多个元素在盒子内两端对齐效果
Mar 30 HTML / CSS
常用的文件对应的MIME类型汇总
Apr 26 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
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
Pyqt5实现英文学习词典
2019/06/24 Python
深入解析神经网络从原理到实现
2019/07/26 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
python实现最短路径的实例方法
2020/07/19 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
高一政治教学反思
2014/01/28 职场文书
小学新教师培训方案
2014/02/03 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
教师节演讲稿
2014/05/06 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
个人学习总结范文
2015/02/15 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js