我正在尝试通过减少WP站点上的JS文件数量来减少请求数量。我成功地将大约7个javascript文件合并为一个(site.js
)。现在,我正在使用一个拥有自己的JS文件(pluginA.js
)的插件,我希望在该site.js中包含(pluginA.js
)。但是,如果我只是将pluginA JS内容复制到site.js然后将位置更改为/files/site.js
,则firebug的NET选项卡会显示site.js被请求/调用两次。我认为这是由于wp_enqueue_script
。
我怎样才能让它第二次调用site.js但只是查看已加载的site.js?
也许有wp_enqueue_script
的替代品?
插件的php文件:
add_action( 'wp_enqueue_scripts', 'testplugin_scripts');
function testplugin_scripts() {
/*global $testplugin_version; */
$default_selector = 'li:has(ul) > a';
$default_selector_leaf = 'li li li:not(:has(ul)) > a';
wp_enqueue_scripts('test-plugin', site_url('/files/site.js', __FILE__), array('jquery'), $testplugin_version);
$params = array(
'selector' => apply_filters('testplugin_selector', $default_selector),
'selector_leaf' => apply_filters('testplugin_selector_leaf', $default_selector_leaf)
);
wp_localize_script('test-plugin', 'testplugin_params', $params);
}
答案 0 :(得分:0)
如果在单独包含它或将它包含在你的site.js文件中之间的加载时间差是微不足道的话,那么我会单独留下plugin.js。唯一的原因是,如果您继续添加到您的site.js然后下载新版本的插件,您可能会遇到困难。为了补偿,我会使用JS压缩器,它可以显着减小site.js的大小,因此可能比简单地减少HTTP请求的数量提供更大的好处。
答案 1 :(得分:0)
解决方案(有点hacky):不要包含site.js
,因此脚本只会被调用一次(来自插件)