quicklink 描述:用于加快后续页面加载速度
quicklink是一个js库,通过在空闲时间预先获取viewport内的链接,加快后续页面加载速度,可以预加载出现在视口的网页链接,提高用户体验。它的加载过程如下:
1.检测网页中的链接是否出现在视口中,等待链接出现在视口,执行步骤2。
2.等待浏览器空闲后执行3。
3.判断当前的网络连接是否是2G,如果是则停止执行,如果不是2G网络,执行步骤4。
4.预加载链接指向资源。
quicklink旨在成为根据用户viewport中的链接预取内容的简易解决方案,并保持很小的体积(压缩后小于1KB)。 quicklink加速后续页面加载速度的原理如下:
检测viewport中的链接(使用Intersection Observer)
等待浏览器空闲(使用requestIdleCallback)
检查用户的连接速度(使用navigator.connection.effectiveType)
或者是否启用了data-saver(使用navigator.connection.saveData);
预取链接(使用<link rel=prefetch>或XHR),可以控制请求优先级(如果支持,可以切换到fetch())。
如何工作
在你的设备(手机,电脑等)上,你看到的界面就是你下一步可能要点击的,如果利用浏览器空闲时间获取当前你所看到界面按钮的连接。
我理解相当于操作系统的缓存,和操作系统的内存管理,把可能用到的程序加载到内存,大部分程序还在硬盘,在需要的时候再加载,浏览器就可以把可能的按钮的连接先预加载到内存,需要使用的时候直接使用。
这个项目是为了预获取用户视图的连接内容的临时解决方案
安装:
npm install --save quicklink
- 1
使用:
安装完之后,在界面上使用quicklink()方法,即可自动加载;真正实现秒开。
demo下载
下载完解压后打开demos的basic网页,f12打开浏览器的调试界面,点击network标签,随着屏幕的滚动可以看到资源的加载
在项目中的应用还需要继续研究了,以后项目中用的情况再在这里说明