instant.page 是 Alexandre Dieulot 的一个非常酷的项目。Alexandre 对这个想法已经研究了五年了,就像他的 InstantClick 一样,本质上是一样的想法。
这个想法是,在将鼠标悬停在链接上和点击链接之间存在明显的延迟。假设需要 300 毫秒的延迟。这 300 毫秒可以用来预加载下一页。如果您确实利用这段时间进行预加载,则该页面加载速度会更快。
这个新项目利用了更新的技术来完成这项工作。 代码很少,其核心是在您即将点击/触碰的链接的文档中追加一个 。
该页面鼓励您热链接脚本,这意味着如果您已经访问过使用此脚本的页面,则可能会命中缓存。它不像其他第三方 JavaScript 那样有风险,因为 integrity
属性意味着,如果您信任当前的代码,则除非您同时更改该属性,否则它永远不会更改。它还巧妙地使用 type="module"
来防止它在不支持预取的浏览器中加载任何内容。
尽管如此,如果您愿意,也可以自行托管它。我不知道是谁在为这里的带宽买单,所以另一个风险是,如果脚本有一天停止响应,可能会出现挂起的情况。
您可能会争辩说,它并没有像可能的那样绝对负责任地执行预取。谷歌类似的快速链接库(我们在这里介绍过)做了两件有趣的事情,试图更负责任地进行预取:1) 等待 requestIdleCallback
和 2) 尊重来自 navigator.connection
的信息,例如用户启用数据节省模式。
几天前我用这个做了一个 WP 插件,如果有人想在不费吹灰之力的情况下尝试一下,可以使用它。我还添加了一些基本的调试功能,以便您可以在控制台中查看链接是否以及为什么被预取。
https://wordpress.org/plugins/wp-instant-links/
我前几天在 ProductHunt 上看到了这个。太棒了。问题是,Chris,您是否考虑在这里使用它?如果不是,为什么不呢?