当前位置: 首页 > news >正文

HTML5 预加载

原文地址: HTML5 Link Prefetching
原文日期: 2010年07月07日
翻译日期: 2013年08月13日

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

你怎么认为呢?使用空闲时间下载额外的文件属于一种激进的优化,有什么问题欢迎联系我。



转载于:https://www.cnblogs.com/lanzhi/p/6467110.html

相关文章:

  • SonarQube简介
  • ​虚拟化系列介绍(十)
  • 用Python设计第一个游戏 - 零基础入门学习Python002
  • MFC 消息
  • Asp.net常用的三十多个代码(2)
  • 1、Nginx安装和配置文件
  • 小插曲之变量和字符串 - 零基础入门学习Python003
  • Linux rpm 命令参数使用
  • 不起眼的 z-index 却能牵扯出这么大的学问(转)
  • 创建简单存储过程
  • jquery ajax学习笔记
  • 前端工程化 - bower
  • WindowProc和DefWindowProc的区别
  • (转)h264中avc和flv数据的解析
  • JAVA - IDEA快捷键(精简版)
  • [译]CSS 居中(Center)方法大合集
  • __proto__ 和 prototype的关系
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Java 网络编程(2):UDP 的使用
  • leetcode46 Permutation 排列组合
  • MQ框架的比较
  • spring boot下thymeleaf全局静态变量配置
  • vue的全局变量和全局拦截请求器
  • Vue全家桶实现一个Web App
  • webpack项目中使用grunt监听文件变动自动打包编译
  • WePY 在小程序性能调优上做出的探究
  • 对象引论
  • 工程优化暨babel升级小记
  • 记一次用 NodeJs 实现模拟登录的思路
  • 深度学习入门:10门免费线上课程推荐
  • 思维导图—你不知道的JavaScript中卷
  • 一个项目push到多个远程Git仓库
  • 终端用户监控:真实用户监控还是模拟监控?
  • 最近的计划
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • elasticsearch-head插件安装
  • postgresql行列转换函数
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • !!java web学习笔记(一到五)
  • (03)光刻——半导体电路的绘制
  • (pojstep1.3.1)1017(构造法模拟)
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (蓝桥杯每日一题)love
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .net经典笔试题
  • ??myeclipse+tomcat
  • @KafkaListener注解详解(一)| 常用参数详解
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured