我正在开发一个新网站。在测试一些功能时,我有一些调试语句并且正在查看日志。似乎Firefox(至少)加载菜单中的“下一页”以及我点击的页面。如果我有菜单项A B C D E并单击B,那么我会看到对mysite.com/B的请求,然后在日志中请求mysite.com/C,等等。
这是一种前瞻性的表现吗?有没有办法避免它(在链接上设置属性可能?)问题是我的菜单中的第二页有点重,因为它从Web服务加载了大量数据。如果他们想要使用这些功能,我很高兴人们这样做,但是不希望首页的每个访问者都不必要地加载它。这个问题在浏览器中是否一致?
答案 0 :(得分:3)
是的,Firefox会预取链接以改善用户的感知性能。您可以在https://developer.mozilla.org/en-US/docs/Link_prefetching_FAQ
中详细了解Firefox中的功能无法在客户端的浏览器中禁用此功能,但请求应包含标头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');
答案 1 :(得分:0)
是的,它被称为预取。它可以在客户端关闭,请参阅常见问题解答:
https://developer.mozilla.org/en-US/docs/Link_prefetching_FAQ
我不知道通过服务器关闭它的方法