6

好的,所以这不是一个大问题,因为它仅受少数浏览器支持:

  • Mozilla Firefox:支持
  • Google Chrome:自版本 13 起受支持(使用替代语法)
  • Safari:目前不支持互联网
  • 资源管理器:目前不支持

但是,预取让我抽搐。如果用户登陆您的页面并跳转到另一个站点,您是否为他们访问您的预取链接的带宽付费?

开发人员是否存在预取页面上每个链接的风险,这反过来会使网站的用户体验变慢?

看起来它可以改变分析。人们会通过预取来强制用户浏览页面吗?

安全性,您不会知道正在预取哪些页面。它可以预取恶意文件吗?

对于使用受限的移动用户来说,所有这些预取操作会不会很痛苦?

4

2 回答 2

8

我不能称自己为这方面的专家,但我可以提出以下意见:

  1. 只有在已知有益的情况下才应考虑预取。对所有内容启用预取只是愚蠢的。它本质上是服务器负载与用户体验的平衡。

  2. 我没有研究 HTML5 预取规范,但我想他们已经指定了一个标头,指出“此请求正在作为预取的一部分执行”,这可用于解决分析问题 - 即“如果这是预取,不要将其包含在分析统计中”。

  3. 从安全的角度来看,人们会期望预取遵循与 Ajax 相同的跨域规则。这将减轻 XSS 成为问题的任何情况。

  4. 支持 HTML5 预取的移动浏览器应该足够智能,以便在使用 WiFi 时将其打开,并在使用可能昂贵或速度较慢的网络连接形式(例如 2G/3G)时关闭。

正如我所说,我不能保证上述任何事情,但(就像任何技术一样)这是最佳实践的一个案例。您不会Cache-Control强迫网站上的每个页面都缓存一年。您也不希望浏览器满足跨域 Ajax 请求。希望对预取采取同样的考虑。

于 2011-11-15T14:39:51.443 回答
1

为了回答分析和统计的问题,规范有以下说法:

为了确保兼容性并提高预渲染请求的成功率,目标页面可以使用 [PAGE-VISIBILITY] 来确定页面在渲染时的可见性状态,并实施适当的逻辑以避免可能导致预渲染被放弃的操作(例如,非幂等请求),或被触发的不需要的副作用(例如,分析信标在页面显示之前触发)。

于 2015-08-26T19:20:45.113 回答