首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >总是最新的google jQuery,而不是默认的Wordpress jQuery。

总是最新的google jQuery,而不是默认的Wordpress jQuery。
EN

WordPress Development用户
提问于 2016-02-28 14:32:23
回答 2查看 4.3K关注 0票数 0

我成功地使用了google文件,而不是Wordpress内置的文件,我的functions.php中有以下代码:

代码语言:javascript
复制
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的优点是google和库的客户端缓存。

我的问题:

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

EN

回答 2

WordPress Development用户

回答已采纳

发布于 2016-02-28 16:07:36

,好答案,

这个问题的唯一好答案是不要这么做--就这么简单。

一般来说,软件期望某些东西能够正常工作,而不断发展的库可以使用breaking changes。这意味着更改将导致另一段软件停止正常工作,这可能限制了范围,或者破坏了页面上的所有JS。

谷歌没有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.1、1.9.0、1.8.3、1.8.21.8.1、1.8.0、1.7.2、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.1、1.3.0、1.2.61.2.3

但是您可以参考jQuery CDN - https://code.jquery.com/jquery-latest.min.js -尽管基于其后Don’t Use jquery-latest.js的jQuery非常不建议它。

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

,坏答案,

虽然与您交谈的每个人都应该告诉您不要在生产中使用latest,但当您决定谨慎行事时,只需确保将您的方法与yolo联系起来。这可以确保任何看你代码的人都能立即认识到你是一个叛逆者,有时你必须打破你的网站来制作一些煎蛋饼。

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

代码语言:javascript
复制
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的优点是google和库的客户端缓存。

使用latest的一个大问题是,您实际上不想缓存该文件,因为url总是需要指向最新的文件。如果缓存的话,你还能从哪里得到最新的信息?

我还是不明白为什么还有人用if!is_admin()在使用wp_enqueue_scripts时。这是完全无用的,毫无目的--彼得?古森

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

票数 2
EN

WordPress Development用户

发布于 2016-02-28 15:59:27

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

第二:在Google中曾经有指向“最新”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团队已经加入我们的行列,以防止无意中的网络破坏,不再更新http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js的文件。该文件也将锁定在1.11.1版本。

票数 3
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/219171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档