Javascript 在Wordpress中多次加载脚本

Javascript 在Wordpress中多次加载脚本,javascript,php,jquery,wordpress,Javascript,Php,Jquery,Wordpress,我正在尝试从CDNjs和Google等CDN加载一些脚本,这些脚本加载正确,但由于某些原因,我没有发现,对于每个脚本,我有两个甚至三个HTTP请求(对于同一个脚本),下面是一个示例: 我注意到,当我登录时,所有脚本只生成一个HTTP请求 来自ajax.googleapis的Jquery生成两个http请求,来自cdnjs的Jquery.easing.min.js生成三个 代码是: //Making jQuery Google API function modify_jquery() {

我正在尝试从CDNjs和Google等CDN加载一些脚本,这些脚本加载正确,但由于某些原因,我没有发现,对于每个脚本,我有两个甚至三个HTTP请求(对于同一个脚本),下面是一个示例:

我注意到,当我登录时,所有脚本只生成一个HTTP请求

来自ajax.googleapis的Jquery生成两个http请求,来自cdnjs的Jquery.easing.min.js生成三个

代码是:

//Making jQuery Google API
function modify_jquery() {
    if (!is_admin()) {
        // comment out the next two lines to load the local copy of jQuery
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js', false, '2.0.3');
        wp_enqueue_script('jquery');
   }
}
add_action('init','modify_jquery');
我有一个子主题,我从他的父主题复制了一个名为wi_enqueue()的函数。在父级中,函数如下所示:

add_action( 'wp_enqueue_scripts', 'wi_enqueue' );
if ( !function_exists('wi_enqueue') ) {
function wi_enqueue(){
 /* ...*/
}
在my child function.php中,我有:

function wi_enqueue(){
    global $wp_styles, $smof_data;

    /* Enqueue */
    wp_enqueue_script( 'wi-easing', '//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js', array('jquery'), '1.3', true );  
    wp_enqueue_script( 'wi-touchswipe', '//cdnjs.cloudflare.com/ajax/libs/jquery.touchswipe/1.6.4/jquery.touchSwipe.min.js', array('jquery'), '1.3.3', true );
    wp_enqueue_script( 'wi-autosize', '//cdnjs.cloudflare.com/ajax/libs/autosize.js/1.17.1/autosize-min.js', array('jquery'), '1.17.1', true );
    wp_enqueue_script( 'wi-placeholder', '//cdnjs.cloudflare.com/ajax/libs/placeholders/2.1.0/placeholders.min.js', array('jquery'), '2.1.0', true );
    wp_enqueue_script( 'wi-modernizr', get_template_directory_uri() . '/js/modernizr.custom.15463.js', array('jquery'), '2.6.2', true );
    wp_enqueue_script( 'wi-waypoint', '//cdnjs.cloudflare.com/ajax/libs/waypoints/2.0.2/waypoints.min.js', array('jquery'), '2.0.2', true );
    wp_enqueue_script( 'wi-tipsy', get_template_directory_uri() . '/js/jquery.tipsy.js', array('jquery'), '1.0.0', true );
    wp_enqueue_script( 'wi-fitvids', get_template_directory_uri() . '/js/jquery.fitvids.js', array('jquery'), '1.0', true );
    wp_enqueue_script( 'wi-sidr', get_template_directory_uri() . '/js/jquery.sidr.min.js', array('jquery'), '1.1.1', true );

/* .... */
}

这可能解决不了你的问题,但不久前我遇到了一个非常类似的问题,我花了很长时间绞尽脑汁寻找解决方案。最后,一些浏览器(Firefox是罪魁祸首中最常见的浏览器)根据
标记预取下一篇文章,包括JS和其他页面元素

这里有更多关于这方面的信息:


如果您仍然有问题,希望这会有所帮助。

如果脚本被多次加载,请检查您的源代码并再次保存。然后,您可能希望清除浏览器缓存,以确保清除以前的缓存,以便查看当前更新的网站。如果您仍然有相同的问题,可能是因为您的模板或wordpress没有正确安装/配置


因此,如果你仍然面临同样的问题,我强烈建议你在wordpress.org上发布一条帖子。希望这有帮助。

你真的不应该这样做。这是一个非常重要的问题。请放弃这个方法。wordpress自己的jQuery没有什么问题(除了极端的案例使用。)@Andy,这不是错误信息。CDN在许多国家的作用与在美国或东欧的不同。例如,在中国(占世界互联网用户的三分之一),谷歌CDN的工作是零星的,如果有的话。工作时,站点的加载时间可以增加200%。。我建议你在指责别人“散布错误信息”之前,先做好这方面的准备工作。如果这是一个如此好的解决方案,它早就在核心中了。更不用说,在这个问题上,从Google加载的jQuery并不是处于无冲突模式,@Andy。这是便于教育阅读的3个链接。如果你不相信那些核心开发者,我想我也可以找到马特·马伦韦格对这个主题的评论。@Andy-做你想做的。关键是,如果你有问题或没有,你不能知道。您可能正在开发小型本地网站,但您从未真正尝试从国外查看它们。就像上面评论链接中所说的,你不知道你的用户是否有权访问CDN。你不知道他们的装载时间。您不知道丢失了哪些用户。
没有问题这一事实并不意味着这是一个好的做法,也不意味着我传播错误信息@Andy,如果你拒绝聊天,最后一条评论——你应该阅读你发布的链接。。如果你仔细阅读,它们实际上有助于我的观点有点偏离。我还想知道什么是“错误信息”我应该
“停止像这样散播”
(还有什么…?)。