如果我对当前正在下载的文件使用XMLHttpRequest会发生什么?

时间:2015-02-11 08:42:06

标签: javascript html ajax prefetch

我试图逐步增强PJAX风格的链接。我计划在一些常规预取<link> s:

之上对其进行分层
<link rel="prefetch" href="next.html"/>

如果浏览器已经下载了next.html,那么PJAX请求应该只是点击缓存,并且不会造成任何伤害。但是,当然,由于实际获取预取链接完全取决于浏览器,我无法知道它何时会出现。

我讨厌让用户进行双重下载,所以我考虑过关闭<link>But browsers have started preloading/rendering on the <link rel="next"/> tag too,这使事情变得复杂。

如果XMLHttpRequest命中&#34;在飞行中&#34;下载,我可以期待什么样的浏览器行为?我试图做自己的研究,但它充满了竞争条件和其他肮脏的行为。

1 个答案:

答案 0 :(得分:1)

来自MDN FAQ

  

如果我在预取某些内容时点击某个链接会怎样?
  当用户单击链接或启动任何类型的页面加载时,链接预取将停止,并且将丢弃任何预取提示。如果部分下载了预取文档,则部分文档仍将存储在缓存中,前提是服务器发送了一个&#34; Accept-Ranges:bytes&#34;响应标题。此标头通常由Web服务器在提供静态内容时生成。当用户访问实际的预取文档时,将使用HTTP字节范围请求获取文档的剩余部分。