覆盖,取消或使预渲染页无效

时间:2015-11-16 20:05:05

标签: javascript html html5 prefetch prerender

在HTML中,您现在可以使用预取,* prerender,就像这样

<link rel="prerender" href="https://www.adorama.com/">

这预示着幕后的下一页 这在博客和电子商务列表页面中被大量使用,以预先渲染下一页。

但问题是,如果在预呈现成功运行之后,现在用户在页面中进行了更改,这会改变下一页(已经预呈现的页面)的行为方式。

我们如何使预渲染页面无效,因此当我们首先查看它时,它会请求新页面而不显示预渲染页面。

我们不想覆盖链接,因为我们希望从客户端或CDN缓存中受益..

*(请参阅Yoav Weiss - Hinting the browser

的详细讨论

1 个答案:

答案 0 :(得分:1)

我现在能想到的唯一方法是在预渲染页面中使用逻辑来检查page visibility API,我们可以检查是否visibilityState === prerender然后为on {{添加事件监听器1}}并且在事件visibilitychange我们可以检查存储的值(设置)是否仍然相同,如果不是,我们可以运行正确呈现页面所需的逻辑或只是刷新页面.....