始终使用最新的Google jQuery,而不是默认的WordPress jQuery

时间:2016-02-28 作者:NewUser

我成功地使用了google CDN jQuery文件,而不是Wordpress的内置文件,在我的函数中使用了以下代码。php:

function register_jquery() {

    if (!is_admin()) {
        wp_deregister_script(\'jquery-core\');
        wp_register_script(\'jquery-core\', \'https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js\', true, \'2.2.0\');
        wp_enqueue_script(\'jquery-core\');

        wp_deregister_script(\'jquery-migrate\');
        wp_register_script(\'jquery-migrate\', \'https://cdn.jsdelivr.net/jquery.migrate/1.2.1/jquery-migrate.min.js\', true, \'1.2.1\');
        wp_enqueue_script(\'jquery-migrate\');

        wp_deregister_script(\'jquery-ui\');
        wp_register_script(\'jquery-ui\', \'https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js\', true, \'1.11.4\');
        wp_enqueue_script(\'jquery-ui\');
    }
}

add_action( \'wp_enqueue_scripts\', \'register_jquery\' );
我认为,使用google lib的优势在于google CDN和库的客户端缓存。

My Question:

如何更改代码以自动从Google加载最新的jQuery版本?

2 个回复
最合适的回答,由SO网友:jgraup 整理而成

这个问题唯一好的答案是don\'t do it - 就这么简单。

软件通常期望事情以某种方式工作,而不断发展的库可以breaking changes. 这意味着更改将导致另一个软件停止正常工作,这可能会限制范围或破坏页面上的所有JS。

<小时>Google CDN 没有的目录latest.

版本:

2.2.0、2.1.4、2.1.3、2.1.1、2.1.0、2.0.3、2.0.2、2.0.1、2.0.0、1.12.0、1.11.3、1.11.2、1.11.1、1.11.0、1.10.2、1.10.1、1.10.0、1.9.0、1.8.3、1.8.2、1.8.0、1.7.1,1.7.0、1.6.4、1.6.3、1.6.2、1.6.1、1.6.0、1.5.2、1.5.1、1.5.0、1.4.4、1.4.3、1.4.2、1.4.1、1.4.0、1.3.2、1.3.0、1.2.6、1.2.3

但是您可以引用jQuery CDN-https://code.jquery.com/jquery-latest.min.js - 尽管jQuery根据他们的帖子高度不推荐-Don’t Use jquery-latest.js

本周早些时候,jQuery CDN出现了一个问题,使jQuery成为最新版本。js和jquery最新版本。在某些地理区域,min.js文件在几个小时内不可用。(这不是CDN本身的问题,而是为CDN提供文件的存储库的问题。)虽然我们总是希望有100%的正常运行时间,但这次特别的停机强调了使用此文件的反模式之后的生产站点的数量。所以,让我们明确一点:不要使用jquery最新版本。js在生产现场。

糟糕的答案,当你与之交谈的每个人都应该告诉你永远不要使用latest 在生产中,当你决定放弃谨慎时,一定要用yolo. 这可以确保任何查看您的代码的人都会立即意识到您是一个叛逆者,有时您需要破坏您的站点来制作煎蛋饼。

不幸的是,或者幸运的是,取决于您与谁交谈,其余的库不能被latest.

function register_jquery_yolo() {

    // FIXME: This conditional should be removed:
    // if ( ! is_admin() ) {  

        wp_deregister_script( \'jquery-core\' );
        wp_register_script( \'jquery-core\', \'https://code.jquery.com/jquery-latest.min.js\', true, \'latest-yolo\' );
        wp_enqueue_script( \'jquery-core\' );

        wp_deregister_script( \'jquery-migrate\' );
        wp_register_script( \'jquery-migrate\', \'https://cdn.jsdelivr.net/jquery.migrate/1.2.1/jquery-migrate.min.js\', true, \'1.2.1\' );
        wp_enqueue_script( \'jquery-migrate\' );

        wp_deregister_script( \'jquery-ui\' );
        wp_register_script( \'jquery-ui\', \'https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js\', true, \'1.11.4\' );
        wp_enqueue_script( \'jquery-ui\' );
    // }
}

add_action( \'wp_enqueue_scripts\', \'register_jquery_yolo\' );
我认为,使用google lib的优势在于google CDN和库的客户端缓存。

使用的一个大问题latest 因为url总是需要指向最新的文件,所以您实际上不想缓存该文件。如果缓存了最新的数据,你还会如何获取它?

我仍然不明白为什么有人在使用wp\\u enqueue\\u脚本时仍然使用if(!is\\u admin())。这是完全无用的,没有任何目的-彼得·古森

正如所指出的if ( ! is_admin() ) 在这种情况下不应使用。wp_enqueue_scripts 用于前端脚本,admin_enqueue_scripts 对于管理脚本,以及login_enqueue_scripts 用于登录页面。

SO网友:markratledge

第一:一般来说,正如评论中指出的那样,这对你的代码来说是个坏主意,因为事情会破裂。https://blog.jquery.com/2014/07/03/dont-use-jquery-latest-js/

第二:Google API上曾经有指向“最新”jQuery库的链接,即使用文件名jquery-latest.js - 但除此之外:https://stackoverflow.com/questions/12608242/latest-jquery-version-on-googles-cdn

我们知道这一点http://code.jquery.com/jquery-latest.js 因为CDN统计数据显示它是最受欢迎的文件而被滥用。如果开发人员只使用它来制作本地副本,情况就不会是这样了。

我们决定停止更新此文件以及缩小的副本,将这两个文件永远保持在1.11.1版本。

Google CDN团队已加入我们的行列,以防止意外的web破坏,并且不再更新http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js. 该文件也将在版本1.11.1中保持锁定。