2011-09-14 6 views
2

바닐라에서 JSONP를 사용하여 태그를 만들어 src으로 작성하면 자바 스크립트 플러그인 및 라이브러리를 사용하지만 독립적 인 상태로 유지되기 원하는 다른 자바 스크립트 구성 요소에 대한 의존성 삽입에 대해 동일한 방법을 사용할 것을 고려하게되었습니다 가능한 한. 잠재적으로 주입해야 할 수있는 인기있는 라이브러리의 예로서 jQuery를 사용동적 인 JavaScript 의존성 삽입 태그

...

// make sure we don't load it if already loaded. 
if (typeof jQuery === 'undefined') { 
    var dependency = document.createElement('script'); 
    dependency.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"; 
    document.getElementsByTagName('head')[0].appendChild(dependency); 
} 

window.onload = function() { 
    // jQuery is now available w/o the extra <script> tag added by the end user... 
} 

정말이 시점에서 그것 ( 하지만 작동합니까)을 중심으로 개념이지만, 내가 궁금하네요 이것이 자바 스크립트 의존성 주입을위한 받아 들일만한 해결책이라고 생각한다면? 이것에 대한 어떤 생각?

답변

1

이 트릭을 구현하기 전에 을 입력해야합니다. 이유는입니다. 코드가 중요하고 알 수없는 환경에서 사용해야하는 경우이 방법을 사용하는 것이 좋습니다. 외부 웹 사이트를 위해 웹 플러그인을 만들 때 개발자가 필요한 라이브러리를 포함하도록하십시오. 더 효율적이고 신뢰할 수 있습니다.

예를 들어 : 코드를 (익명) 함수 안에 넣고 불필요한 변수로 전역 범위를 채우지 마십시오.

+0

좋은 생각, 고마워! – jondavidjohn

0

네, 그게 바로 google.load()의 개념이라고 생각합니다.

+0

하지만 그 자체는 주입되지 않은 종속성입니다 ... 맞습니까? – jondavidjohn

+0

:) 예. 요점은 그것이 유효한 접근 방법 일뿐 아니라 커다란 존경받는 소프트웨어 회사와 도서관 개발자가 사용하는 접근 방식이라는 것입니다. 나는 당신이 그 기술을 사용하기 위해 구글을 사용해야한다고 말하는 것이 아닙니다. – gilly3

관련 문제