我正在尝试从CDNs(如CDNjs和Google)加载我的一些脚本,脚本正确加载,但由于某些原因我没有找到,对于每个脚本,我有两个甚至三个HTTP请求(对于相同的脚本),这是一个例子:http://tools.pingdom.com/fpt/#!/ePuR3Z/http://elbauldelprogramador.com。
我注意到当我登录时,所有脚本只生成一个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(){
/* ...*/
}
在我的孩子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 );
/* .... */
}
答案 0 :(得分:1)
这可能会也可能不会解决您的问题,但我前一段时间遇到了一个非常类似的问题,并花了很长时间来寻找解决方案。最后,结果发现有些浏览器(Firefox是最常见的有害浏览器)根据<link rel="next" />
标签预取下一篇文章/文章,包括JS和其他页面元素。
此处有更多相关信息:http://www.ebrueggeman.com/blog/wordpress-relnext-and-firefox-prefetching
如果你还有这个问题,希望这会有所帮助。
答案 1 :(得分:0)
如果多次加载脚本,请查看源代码并再次保存。然后,您可能希望清除浏览器缓存以确保清除先前的缓存,以便查看当前更新的网站。如果您仍然遇到相同的问题,可能是因为您的模板或wordpress未正确安装/配置。
因此,我强烈建议您在wordpress.org上发布帖子,如果您仍面临同样的问题。希望这会有所帮助。