2012-11-24 3 views
1

WP 사이트에서 JS 파일 수를 줄여 요청 수를 줄이려고합니다. 성공적으로 약 7 자바 스크립트 파일을 하나로 결합했습니다 (site.js). 자, 나는 자신의 JS 파일 (pluginA.js)을 가지고있는 플러그인을 사용하고 있는데, 그 site.js에 (pluginA.js)를 포함하고 싶다. 그러나 pluginA JS 내용을 site.js로 복사 한 다음 위치를 /files/site.js으로 변경하면 firebug의 NET 탭에 site.js가 두 번 요청/호출 되었음이 표시됩니다. 이건 wp_enqueue_script 일 것 같습니다.JS 파일이 Wordpress에서 두 번 호출됩니다.

두 번째로 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

당신은 이전의 스크립트를 드 등록 봤어 site.js를 포함하지 마십시오 때문에 스크립트는 (플러그인에서)를 한 번 호출됩니다? –

답변

0

로드 시간 차이가 별도로 포함 가진 또는 site.js 파일을 가진 사이의 한계 인 경우, 나는 혼자 plugin.js을 떠날 것이다. 유일한 이유는 site.js를 계속 추가 한 다음 플러그인의 새 버전을 다운로드하면 어려움이 발생할 수 있기 때문입니다. 이를 보완하기 위해 JS 컴프레서를 사용하면 site.js의 크기를 크게 줄일 수 있으므로 단순히 HTTP 요청 수를 줄이는 것보다 더 큰 이점을 제공 할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 예, 결국 JS를 압축 할 것입니다. 또한 필자는 plugins JS를 site.js에 추가하는 것을 선호한다. 왜냐하면 필자는 플러그인을 내 테마에 직접 통합 할 것이고 마이그레이션해야 할 경우에 대비하여 더 쉽게 할 수 있기 때문이다. 또한, 나는 플러그인의 업데이트에 대해 걱정하지 않아. 그건 그렇고, 나는 site.js의 축소판과 일반 버전을 가지고 있는데, 여기서 site.js는 적절한 주석을 달아서 무엇이 무엇인지 명확하게 구분할 수 있습니다. 나는 site.js를 두 번 호출하지 않는 방법을 모른다. –

0

솔루션 (약간 해키) :

+0

다른 방법은 없습니까? 그래서 플러그인은 site.js가 이미로드되었으므로 두 번째 호출하지 않습니다 (헤더에 있음). –

관련 문제