1

WP サイトの JS ファイルの数を減らすことで、リクエストの数を減らそうとしています。約 7 つの JavaScript ファイルを 1 つに結合することに成功しました ( site.js)。現在、独自の JS ファイル ( ) を持つプラグインを使用しています。その site.jspluginA.jsに ( ) を含めたいと考えています。pluginA.jsただし、単純に pluginA JS コンテンツを site.js にコピーして場所を に変更すると、/files/site.jsfirebug の [NET] タブに、site.js が 2 回要求/呼び出されたことが示されます。によるものと思われwp_enqueue_scriptます。

2 回目に 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);
    }
4

2 に答える 2

0

解決策(少しハッキー):含めないsite.jsでください。したがって、スクリプトは(プラグインから)一度だけ呼び出されます。

于 2012-11-24T05:01:26.740 に答える
0

ロード時間の違いが、個別に含めるか、site.js ファイルに含めるかでわずかである場合は、plugin.js をそのままにしておきます。その唯一の理由は、site.js に追加し続けてプラグインの新しいバージョンをダウンロードすると、問題が発生する可能性があるためです。これを補うために、site.js のサイズを大幅に削減できる JS コンプレッサーを使用すると、単純に HTTP リクエストの数を減らすよりも大きなメリットが得られる可能性があります。

于 2012-11-24T04:43:05.570 に答える