2009-12-17 2 views
3

dojo 툴킷을 사용하여 실제 빌드를 작성하지 않고 크로스 도메인으로 실행될 코드를 로컬에서 테스트하는 올바른 방법은 무엇입니까?도메인 간 빌드를 로컬에서 테스트하는 방법은 무엇입니까?

이 나타나는 것처럼, 세 가능한 옵션 (자신의 단점 각)이 있습니다 : 지역 (비 XD)의 XMLHttpRequest dojo.require이 옵션을 사용하지

  • 를 사용

    1. 은 dojo.require [s]는 XHR을 통해 동기식으로 js를 요구하기 때문에 실제로 xd 동작을 테스트하지 않습니다.
  • djConfig.debugAtAllCosts = true; 합니다 ('스크립트'태그를 통해) 비동기 적으로 필요한 코드를로드 않습니다이 옵션은, 또한 XHR을 통해의 코드를 끌어 있지만
  • 크로스 도메인이
    • 이러한 접근 방식을 구축 만들기 내가의 코드를 실행 해요 환경에서 가능하지 않은 빌드, (우리는 우리 자신의 온을 사용하고있는이 필요 특정 페이지에 필요한 js 만 포함하는 즉석 빌드 프로세스.이 프로세스는 개발에 적합하지 않습니다.
  • 따라서, 내 질문은 : (모든 파일에 XD 접두어/접미어를 추가)을 XD 빌드를 필요로하지 않는 loader_xd를 사용하는 방법은 무엇입니까?

    제 2의 방법 (debugAtAllCosts 사용)은 dojo.require [s]를 미리 파싱 할 동기를 묻습니다. loader_xd가 미리 구문 분석 할 수 없으면 (또는 오히려) 구문 분석 할 수없는 경우 테스트/디버깅을 위해 만든 메서드가 왜 그렇게됩니까?

    답변

    1

    XD 로딩을하고 구축하지 않으면로드하는 방법이 없다고 생각합니다. 다양한 옵션에 대한 분석이 옳은 것 같습니다.

    debugAtAllCosts는 특히 최근까지 대부분의 브라우저가 eval을 통해 가져온 코드로 지능적인 작업을 수행 할 수없는 디버깅 문제를 해결했습니다. 아직도 파이어 폭스는 콘솔에서 eval 사이트 (bootstrap.js)에 실제 eval 버퍼가 아닌 eval로부터 오프셋 된 라인 번호를 가진 것으로 예외를보고하고, 평상시 eval 버퍼는 익명으로보고합니다. Firebug는 디버깅 경험을 향상시키는 최초의 디버거 to jump through some hoops이었고 Dojo의 로더가 소스에 대한 파일 경로를 결정하기 위해 XHR과 eval 사이에 주입하는 특수 메타 데이터를 허용했습니다. Webkit/Safari는 최근에도 이것을 구현했습니다. 나는 debugAtAllCosts가 XD 로더를 선행한다고 믿습니다.

    3

    펠러가 상황을 설명했습니다. 모듈에 대한 .xd.js 파일을 생성하고 싶다면 util/buildscripts/jslib/buildUtilXd.js와 buildUtilXd.xdgen() 함수를 살펴보십시오.

    자신의 스크립트를 작성하는 데 약간의 작업이 필요하지만 util/buildscripts/build.js에서 포인터를 찾을 수 있습니다.

    Dojo (아마도 Dojo 2.x 시간대)에 대해서는 모듈 주위에 함수 래퍼가있는 모듈 형식의 스크립트 태그를 사용하는 로더로 전환 할 수 있기를 바라고 있습니다. 개발자. 이렇게하면 동일한 모듈 형식이 로컬 및 xd 경우에서 작동 할 수 있습니다.

    관련 문제