1

我正在开发一个新网站。在测试一些功能时,我有一些调试语句并正在查看日志。Firefox(至少)似乎加载了菜单中的“下一页”以及我单击的页面。如果我有菜单项 ABCDE 并单击 B,那么我会在日志中看到对 mysite.com/B 的请求,然后是对 mysite.com/C 的请求,依此类推。

这是某种前瞻性的表现吗?有什么办法可以避免它(可能在链接上设置一个属性?)问题是我的菜单中的第二页有点重,因为它从 Web 服务加载了大量数据。如果人们想使用该功能,我很高兴他们这样做,但不希望首页的每个访问者都不必要地加载它。这种行为在浏览器中是否一致?

4

2 回答 2

3

是的,Firefox 将预取链接以提高用户的感知性能。您可以在此处阅读有关 Firefox 功能的更多信息https://developer.mozilla.org/en-US/docs/Link_prefetching_FAQ

无法在客户端的浏览器中禁用此功能,但请求应包含X-moz: prefetch可用于确定它是否实际上是预取请求的标头,并可能为预取请求返回空白页面。然后,您可以使用Cache-control: must-revalidate它来确保页面在用户实际请求时正确加载。

如果您碰巧将 Worpdress 用于您的网站,您可以使用以下方法禁用带有预取信息的标签:

WordPress 3.0+

//remove auto loading rel=next post link in header
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');

旧版本:

//remove auto loading rel=next post link in header
remove_action('wp_head', 'adjacent_posts_rel_link');
于 2012-09-21T19:51:11.460 回答
0

是的,它被称为预取。可以在客户端关闭,见FAQ:

https://developer.mozilla.org/en-US/docs/Link_prefetching_FAQ

我不知道通过服务器将其关闭的方法

于 2012-09-21T19:50:42.343 回答