问题:使用cdn引入库是不是真的比npm引入的好?好在哪里?
场景:想要页面打开时更快。
答案:这两者的使用还是要具体情况具体分析,使不使用CDN还是看以下几个问题:
-
cdn的优势:
1、带宽更大引入时更快。
2、不同地区用户访问可以就近加载。
(如果自己的web站点带宽够大,全国甚至全球多低部署的话就没有必要用cdn了) -
页面里面有多少外链接资源文件,比如说链接引入的图片、css文件、js文件等。浏览器的并发会限制同域资源的请求数的(一般是10个),引入CDN的话就因为不同源,可以打破浏览器的并发限制,提高下载速度(浏览器引入网络资源的多线程的,js才是单线程的)。如果没有多少资源文件的话,强行并发下载,会产生多线程小文件的I/O瓶颈。
-
按需引入的问题:如果只是按需引入了很少的依赖包也是没有必要用CDN引入的,因为根本问题是依赖包太大才需要用CDN的高带宽去解决。
总结如下:
在本地按需引入组件,然后使用cdn代理服务器将整个项目放上cdn代理服务器,这才是最优解。技能使用npm按需引入的优势,又可以享受CDN的优势。
*小tip:在H5项目里面用到的组件可以直接使用js代码引入然后将整个项目站点cdn化。