问题:对于要引用的第三方包,使用第三方CDN连接,用< script >标签引入和通过npm引入,并使用相关打包工具进行管理, 有何区别?
我认为,有以下几点需要考虑:
- CDN的特点。CDN的主要优势就在于,不同地区的用户访问,会就近加载资源。所以:
- 如果你的系统会部署在全国或全球范围内,那么使用CDN,下载速度可能会更快一些(一般CDN的宽带都是很高的,下载速度很快);
- 如果不是,那么使用哪一种方式,区别应该不大。
- Web站点宽带。如果宽带太小,其实不论哪种方式都很慢,引入CDN也许会分担一部分宽带压力。如果宽带够用,那么可选择的方案就比较随意了~
- 页面上外链的资源文件数量。外联文件包括js、css、img等等。浏览器会限制同域名资源并发请求数量,一般为10个。当你的页面中这种外联文件比较多时,通过CDN引入跟自己Web站点不同命的资源,就可以打破浏览器的这种限制,从而提高了整体的下载速度。但是,如果本身你的网站也没有多少个资源文件需要下载,那么强行拆分带来的是多线程小文件I/O的性能瓶颈。
- 按需引入问题。npm的优点是可以按需引入,但是,这个问题还需要结合本身压缩文件的大小来进行讨论,如果压缩文件本身就比较小,那么按需引入和全部引入,能够带来的改变可能不会太明显。但如,对于比较大的包,按需引入可能会有一些优势。
- 安全问题。如果用第三方CDN,需要考虑安全的问题。所以,首先看看公司CDN~
总之,按道理来讲,肯定是文件越少、request数量越少,网页加载越快,但是还是要考虑一些实际因素,需要将多种可能结合起来,具体问题具体分析。