链接预取

链接预取允许Web浏览器预加载资源。这样可以加快网页的加载和渲染速度。预取最早是在HTML5中引入的。

预取是通过网页中的提示来完成的。浏览器使用这些提示来预取链接。可以预取的资源包括:JavaScript、CSS、图像、音频、视频和Web字体。还可以提示DNS名称和TCP连接进行预取。

链接预取

在HTML5中预提取

有两个W3C标准涉及HTML5的预取:

  • 链接预加载
    • 提示特定的URL。常见的提示包括JavaScript、CSS、图像和Web字体。
  • 资源提示
    • 提示浏览器。常见提示包括DNS查询,打开TCP连接和页面预渲染

用于预取提示的HTML5方法:

  • 标准链接预取(大多数浏览器支持):<link rel="prefetch" href="http://www.example.com/">
  • DNS预取(Mozilla Firefox、Google Chrome等):<link rel="dns-prefetch" href="http://example.com/">
  • 页面预渲染(Google Chrome、Internet Explorer和其他):<link rel="prerender" href="/page/to/prerender">
  • 图像的延迟加载(Internet Explorer):<img src="image.jpg" lazyload>

问题和批评

不分青红皂白的链接预取所固有的问题涉及滥用“安全” HTTP方法。在HTTP GET和HEAD请求被说成是“安全的”,即用户代理问题,这些请求的,不要指望该请求导致收件人服务器上没有变化。但是,网站运营商通常会在此限制范围之外使用这些请求。普通超链接(几乎通常会导致GET请求)通常用于实现注销功能和帐户验证,例如,当用户完成帐户创建表单时,自动服务将验证电子邮件发送到用户的给定电子邮件地址。

同样,托管服务完全有可能提供Web前端来管理文件,包括删除一个或多个文件的链接。访问包含这些类型的链接的页面的用户(使用使用不加区分的链接预取器的浏览器)可能会发现他们已注销或文件已删除。

另外,对于链接预取的隐私和资源使用隐含着许多批评:

  • 为使用的带宽付费的用户和网站运营商发现,他们自己为用户可能实际未访问的页面的流量付费,而广告商可能为从未访问过的网站上的已查看广告付费。
  • 由于注册了用户从未见过的页面点击量,因此诸如浏览器使用情况,搜索引擎引用和页面点击量之类的Web统计信息可能变得不那么可靠。
  • 通过下载更多页面或从未请求的站点中,用户可能面临更多的安全风险(此外,随着“随身听”下载变得更加高级和多样化)。
  • 如果预取访问未经授权的内容,则用户可能违反其网络或组织的可接受使用策略。

对于移动设备或带宽限制有限的用户,预取可能会导致带宽有限的不必要的浪费。

即使未将链接指定为预取链接,实现也可以预取链接。

在预渲染的情况下,Google警告说,使用不当可能会导致上述带宽使用增加,其他链接的加载速度变慢以及内容有些陈旧。

0

点评

点赞

相关文章