来我博客的的朋友是否有一种秒开感觉,打开一个链接几乎不需要等待就能瞬间跳转,除了一般cdn静态加速和主机本身的原因外,还使用了一个重要的文件InstantClick。
原理:当我们鼠标放到超链接上到按下鼠标,中间有一个非常简短的过程,InstantClick正是利用这个时间差预加载超链接的内容,点击的时候直接显示出来,让读者有种秒开的感受。
官方解释(机翻):
默认值:鼠标悬停时
当用户将鼠标悬停在链接上时,预加载开始。如果用户的连接良好并且您的页面加载时间不长,则页面将立即显示。
只需按照“入门”中所述初始化 InstantClick即可。
无需对服务器进行额外负载:鼠标按下时
当用户按下鼠标按钮时预加载(单击发生在释放时)。这几乎不会给您的服务器带来任何开销,但仍然会带来“神奇的”速度提升。
要使用,请'mousedown'作为参数传递给InstantClick.init。要使用,请'mousedown'作为参数传递给InstantClick.init。要使用,请'mousedown'作为参数传递给InstantClick.init。要使用,请'mousedown'作为参数传递给InstantClick.init。
InstantClick . init ( '鼠标按下' );
两者之间:鼠标悬停时延迟
如果用户在您选择的延迟时间过去后仍然将鼠标悬停在链接上,则页面将开始预加载。
建议的延迟为 100 毫秒和 50 毫秒。超过 100 毫秒实际上可能比鼠标按下时更糟糕(见下文),少于 50 毫秒可能不会被察觉。
要使 InstantClick 在延迟后预加载,请将延迟时间(以毫秒为单位)作为参数传递给InstantClick.init。
InstantClick.init ( 50 ) ;
移动端无论使用哪种选项,当访问者的手指触摸链接(touchstart)时,预加载都会开始。
如果您的网站针对移动设备进行了优化(Android 上使用设备宽度视口,iOS 上使用FastClick),则“点击”发生在访问者从链接上松开手指时,预加载会有大约 100 毫秒的延迟。
如果您的网站针对移动设备进行了优化(Android 上使用设备宽度视口,iOS 上使用FastClick),则“点击”发生在访问者从链接上松开手指时,预加载会有大约 100 毫秒的延迟。
如果您的网站未针对移动设备进行优化,则取决于操作系统。Android 需要 300 毫秒,iOS 需要 450 毫秒。如果您的网站未针对移动设备进行优化,则取决于操作系统。Android 需要 300 毫秒,iOS 需要 450 毫秒。
同一站点上的 3G 请求通常需要大约 200 毫秒。选择哪一个
如果您的网站可以处理额外的负载,请在鼠标悬停时进行预加载如果您的网站可以处理额外的负载,请在鼠标悬停时进行预加载。
如果您的网站可能无法实现,请在鼠标按下时进行预加载。无论如何,您的网站仍将比 99% 的网站更快。
如果您想确定您的服务器是否可以,请从 mousedown 开始,这几乎不会给您的服务器带来任何额外的压力。然后使用延迟 100 毫秒的 mouseover。然后延迟 50 毫秒(或者如果您有耐心,可以减少一点)。然后直接使用 mouseover。
如果服务器端分析很重要,则您只能使用鼠标按下,因为使用其他任何方式都会扭曲数据。
缺点:我的博客使用exif插件,需要加载文章里面的图片然后显示出来,使用InstantClick后需要刷新一下才能显示exif信息,不过瑕不掩瑜,让读者大大能快速到达需要的网址就是最大的胜利。
使用方法
- 前往InstantClick官网,下载js文件。
- 将它上传到博客空间或者cdn空间
- 在foot.php放入如下代码
// src后面填写文件路径
<script src="instantclick.min.js" data-no-instant></script>
<script data-no-instant>InstantClick.init();</script>
效果
如本站所示,实测只要支持js的网站都能使用该方法加速浏览,提高读者体验。