使用HTML5预取的危险?

时间:2011-11-15 14:30:37

标签: html5 prefetch

好的,所以这不是一个巨大的担忧,因为它只受少数浏览器的支持:

  • Mozilla Firefox:支持
  • Google Chrome:从版本13开始支持(使用备用语法)
  • Safari:目前不支持互联网
  • 资源管理器:目前不支持

然而,预取让我抽搐。如果用户登陆您的页面并退回到另一个站点,您是否支付了他们访问预取链接的带宽?

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

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

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

对于使用受限的移动用户来说,所有这些预取是否会让您感到痛苦?

2 个答案:

答案 0 :(得分:8)

我不能称自己是这方面的专家,但我可以做出这些观察:

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

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

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

  4. 支持HTML5预取的移动浏览器应足够智能,以便在使用WiFi时将其打开,并在使用可能昂贵或缓慢形式的网络连接时关闭,例如2G / 3G。
  5. 正如我所说,我无法保证上述任何内容,但(与任何技术一样)都是最佳实践案例。您不会使用Cache-Control强制将您网站上的每个网页缓存一年。您也不期望浏览器满足跨域Ajax请求。希望对预取采取相同的考虑因素。

答案 1 :(得分:1)

要回答分析和统计问题,the spec有以下说法:

  

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

相关问题