几星期前发现谭总的博客页面加载时顶部有个进度条,而且链接打开的速度非常快,问之,答曰:此乃与PJAX相近的技术实现的。

虽然自己对JS也是一知半解,更不用说什么PJAX,但是并不妨碍我从谭总的页面源码里找到了答案……(谭总看到了不要打我……)

发现谭总的博客每个页面的底部都引入了一个名为“instantclick.min.js”的JS文件,于是乎查了查,对着文档试了试,发现用起来还是挺简单的。

这是官方网站:http://instantclick.io/

本来我以为它是对当前页面的全部链接都进行预加载,不过文档里面是这样说的:

Before visitors click on a link, they hover over that link. Between these two events, 200 ms to 300 ms >usually pass by (test yourself here). InstantClick makes use of that time to preload the page, so >that the page is already there when you click.

所以它其实是利用鼠标点击链接前的短暂延迟进行预加载的。本来现在的这个博客每个页面打开也就300ms左右,用上InstantClick后再节约200~300ms,差不多是秒开了,用一句话来形容,那就是“如丝般顺滑”。

至于使用它就两步:

  1. 在官网下载 instantclick.min.js 文件放在网站根目录下。
  2. 在 footer.php 里 </body> 前加上两行代码(script前用反斜杠转义了下,用时需去掉反斜杠):

    <\script src="instantclick.min.js" data-no-instant></script>
    <\script data-no-instant>InstantClick.init();</script>

然后就搞定了,改变进度条颜色可以用 #instantclick-bar {background: #ff6850;}

参考资料:

http://linyo.me/instantclick.html
http://instantclick.io/