之前我们有介绍过关于从 Google Libraries下载jQuery的相关内容,本文HostGator美国虚拟主机商从公共库等方面介绍选择什么样的JS比较好。
公共库是浏览器缓存的理想选择
也许传统的CDN网络和公共图书馆最大的区别在于前者只能通过网站访问,而后者可以被成千上万甚至上0的人访问。浏览器通常会将收到的JavaScript缓存不同的时间段——甚至长达一年!换言之,如果它再次看到相同的URL,它不需要再次进行下载。它只需要使用缓存的副本,完全绕开进程。这绝对是最理想的情况。理想情况下,访问者的浏览器已经将jQuery缓存在其内存中,从而一次性解决渲染阻塞问题。但为此,用户需要使用其他人都在使用的知名公共图书馆。私有CDN不会带来相同的缓存和性能优势。这对于公共库来说是一个巨大的优势。
DNS查找也是如此
浏览器不仅会缓存文件,还会缓存DNS查找。因此,如果数百万人正在使用某个公共库,那么普通用户很可能已经在他们的浏览器中拥有DNS条目,从而完全避免了查找这一操作。这避开了DNS查找的惩罚。但再次强调,它只适用于公共公共库,每个人都使用相同的URL。不是传统的CDN 。
哪个公共库最好?
为了得出结论,我下载了一个简单的程序,它可以探测各种浏览器中缓存的文件。我搜索了当今市场上最著名的两个CDN——谷歌和CDNJS。
谷歌和CDNJS文件都是从一个站点或另一个站点缓存在我的浏览器中的。因此,从DNS解析的角度来看,谷歌和CDNJS不相上下。这两个公共库都可能被使用过,而且它们都没有受到DNS查找的惩罚。但谷歌赢在了jQuery,仔细看看结果。在这两个版本中,可以看到CDNJS只缓存了一个jQuery版本——2.2.4。而谷歌的图书馆却有十一个!因此,除非网站使用JavaScript版本2.2.4,否则谷歌公共库比CDNJS更好。这是因为出于某种原因,使用谷歌库下载jQuery的人比其他任何文件都多。我不知道为什么会这样,但事实就是如此。
WordPress没有使用最新的jQuery版本
在撰写本文的时候,WordPress仍然使用Jquery1.12.4版本。这是出于兼容性的考量,因为很多插件都依赖于旧版本,他们不想破坏它们。看上面的截图,可以看到只有谷歌公共库提供了jQuery版本1.12.4。如果我使用CDNJS作为我的源代码,大多数浏览器都不会将它放在缓存中,所以需要下载它。因此,对于公共库来说,仅仅为jQuery提供服务是不够的。它们需要在jQuery的许多不同版本中流行,最大限度地提高任意版本缓存在随机浏览器中的机会。
使用谷歌公共库在WordPress上为jQuery提供服务器
每个软件框架的过程是不同的。但是如果想使用谷歌的jQuery和WordPress库,请将下面的代码粘贴到主题的functions.php文件中。
function load_google_jquery () {
if (is_admin()) {
return;
}
global $wp_scripts;
if (isset($wp_scripts-》registered[‘jquery’]-》ver)) {
$ver = $wp_scripts-》registered[‘jquery’]-》ver;
$ver = str_replace(“-wp”, “”, $ver);
} else {
$ver = ‘1.12.4’;
}
wp_deregister_script(‘jquery’);
wp_register_script(‘jquery’, “//ajax.googleapis.com/ajax/libs/jquery/$ver/jquery.min.js”, false, $ver);
}
add_action(‘init’, ‘load_google_jquery’);
这段代码会检查WordPress所使用的jQuery版本,然后构造用于谷歌公共库的URL。
总而言之:谷歌最适合jQuery
我不反对用户使用CDNJS。事实上,从人性化的角度来看,我更喜欢它们,因为它们是自由且开源软件,而且是Cloudflare的合作伙伴——我喜欢的一家公司。但数据就是数据,技术不允许感情用事。在哪个库更适合jQuery的竞争中,谷歌在竞争中遥遥领先。如上所述,jQuery是一个不应该延迟或异步的JavaScript库。所以使用谷歌公共库是一件很容易的事。
对于其余的JavaScript文件,这并不重要,因为它们不会阻塞页面。但是要特别注意jQuery——它对页面加载速度的影响举重若轻!推荐相关内容 网站使用CDN有什么好处?