HTML5 如何预加载让页面快速呈现

 

 

预加载是一种浏览器机制,使用浏览器空闲时间来预先下载/加载用户接下来很可能会浏览的页面/资源,当用户访问某个预加载的链接时,如果从缓存命中,页面就得以快速呈现

浏览器厂商和开发者之间共同努力的一个方向就是让网站更快。现在已有很多广为人知的加速解决方案: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)

你怎么认为呢?使用空闲时间下载额外的文件属于一种激进的优化

 

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Js正则表达式过滤特殊字符、表情的实例代码: let ret = "12312ffds#¥@¥#%^***(()))*)).`@%@¥@¥", val = this.customDeviceName;//特殊字符过滤let pattern = new RegExp("[`~!@#$^*()=|{}':;',\\[\\]./?~!@#¥……*()——|{}【】‘;:”“'。,、?]
1、htmlshiv.js Remy开发的HTML5shiv工具能利用JavaScript在老式IE里创建main,header,footer等HTML5元素。也就是说使用JavaScript能创建这些本来不存在的HTML5新元素。这是什么原理?你可能花几天也想不明白,但谁在意呢!这个脚本几乎是所有正式网站必用
HTML5 火的正热,最近有个想法也是要用到HTML的相关功能,所以也要好好学习一把。 好好看了一下Canvas的功能,感觉HTML5在客户端交互的功能性越来越强了,今天看了一下Canvas绘图,下边是几个实例,记下以备后用。 1、使用Canvas绘制直线: !doctype html ht
响应式布局,理想状态是,对PC/移动各种终端进行响应。媒体查询的支持程度是IE9+以及其他现代的浏览器,但是IE8在市场当中仍然占据了比较大量的市场份额,使我们不得不进行IE低端浏览器的考虑。那么如何在IE6~8浏览器中兼容响应式布局呢?这里我们需要借助这
近日,微软宣布开源Chakra的核心组件。Chakra是微软新一代浏览器 Microsoft Edge的JavaScript引擎。相关代码将于2016年1月上传到微软的GitHub账号,项目名称为 ChakraCore,遵循MIT许可协议。 ...,HTML5中国,中国最大的HTML5中文门户。
这篇文章报道的不是“新闻”,因为W3C早已开始着手CSS变量方面的工作。至于Google,则要追溯到11月初,当时该公司主要开发人员之一的Addy Osmani宣布了率先在Chrome Canary中引入对CSS变量的支持。 ...,HTML5中国,中国最大的HTML5中文门户。