2012-06-25 5 views
2

HTML5 게임 엔진을 만들고 있습니다. HTML 파일에 포함될 파일은 engine.js뿐입니다. 이 스크립트는 사용자가 다른 스크립트에서 사용할 수있는 전역 엔진 객체를 생성합니다. Engine 객체는 엔진의 모든 클래스와 함수에 대한 래퍼이지만 엔진을 다른 파일로 분리하고 싶습니다. 모든 것이 사용자에 의해 포함될 예정이라면 약간 엉성 할 것입니다. 그렇다면 어떻게 engine.js에 자동으로 포함시킬 수 있습니까?자바 스크립트 내부에 자바 스크립트를 클라이언트 측에 포함시키는 방법은 무엇입니까?

(문제() Node.js.에 요구 등)

+0

당신은 대답을 많이 얻고 있습니다 .... – Hassan

+0

나는 .... – Hassan

답변

4

RequireJS를 살펴 보자. 그것은 당신의 요구에 맞는 도서관입니다.

2

하나의 옵션은 Closure Tools과 같은 javascript에서 javascript로 컴파일러를 사용하는 것입니다. RequireJs를 사용하면 클라이언트는 각 파일 (IIRC), 의 클로저 도구를 사용하여 여러 http GET을 계속 가져와 별도의 자바 스크립트 파일을 하나에 결합합니다. 또한 축소 된 코드도 제거됩니다.

과 단점은 단점 중 일부는

  • 사용자 캐시의 적은 재사용
  • 이 전체 다시로드는 순수 자바 스크립트 접근 방식은 당신 미그만큼 간단하지 않다 어느 하나 개의 파일
1

을 변경하는 경우 포함 ht는 JS가 비행 전 점검이 끝났을 때만 마술을 작동 할 수 있기 때문에 기대하고 있습니다. 자바 스크립트가 포함 된 스크립트를 포함 할 수 있습니다. 그러나 "전역 범위"를 사용하는 것은 그렇지 않은 경우보다 훨씬 더 많은 제한을 벗어납니다. 이 예에서

window.onload = function() 
{ 
    var newScript = document.createElement('script'); 
    newScript.type = 'text/javascript'; 
    newScript.src = 'scripts/yourScript.js'; 
    newScript.onload = yourNormalOnload; 
    // or newScript.onreadystatechange = yourNormalOnload; 
    document.body.appendChild(newScript); 
} 

function yourNormalOnload() 
{ 
    //use whatever functions declared in yourScript.js here 
} 

yourNormalOnload 기능은 스크립트가 될 것입니다,하지만 당신은 즉시 얻을 스크립트에 권한을 부여하기 위해, 당신은이 한 번 호출, 콜백 함수에서 모든 것을 마무리해야 포함 된 스크립트가로드되었습니다. 고맙게도 스크립트를 추가하면 onload 또는 onreadystatechange 이벤트가 발생하므로 수신 할 수 있습니다.

당신은 this 응답을 읽어보십시오

은, 코드는 거의 같은


을하지만, 나보다 설명을 더 많이 제공 .

관련 문제