2012-05-08 2 views
0

누구나 javascriptmvc와 함께 LabJs를 사용합니까? 이는 하위 수준의 종속성로드를 찾고 LabJs의 비동기 성능을 활용한다는 의미입니다.Lab js + Javascriptmvc steal

a.js

.....

도둑질 (../ b.js) 그 때는 (../ c.js) //c.js가 b.js을 필요로하며, 이

b.js

를로드하기 전에 d.js은 // (때 B d.js를로드해야합니다 (d.js ../)

도둑질 .....로드 할 .js가 호출되어 더 나은 분류 및 유지 관리를 위해 d.js로드)

labjs + steal에 대한 기사 또는 경험이 우수 할 것입니다.

답변

0

steal이 프로덕션 응용 프로그램을 단일 JS 파일로 빌드합니다. 원하는 파일을로드 할 수 있습니다. 순간 당신을 위해 하나의 파일을 작성 훔쳐 따로 설정

0

...

각 스크립트 안에 중첩 주석 의존성의 개념이 있기 때문에 그 자체로, 당신은, 병렬 로딩을 최대한 활용할 수 있다는 것을 의미

로더는 A가 로딩을 끝내고 B와 C가 필요하다는 것을 알 수있을 때까지 A가 의존하는 스크립트를 알지 못합니다. 물론 B와 C에 대해 알고 있으면 B와 C를 동시에로드 할 수 있지만 B를로드 할 수는 없습니다 C를 A와 병행하여 사용합니다.

다른 문제는 LABjs (및 대부분의 다른 동적 스크립트 로더)가 엄격히 말하면 비 차단 동작이므로, 이와 같은 스크립트를로드하면 문제가 발생합니다.

- 한에 따라 달라 E A는로드가 완료 한 다음로드 시작 B와 C, 당신은 기본적으로 할 수 없습니다

(- D

B와 C

에 따라 달라집니다 여분의 사전 노력없이) D가 B와 C (따라서 A)가 될 때까지 기다린다.

이 이유는 설명하기가 복잡하지만 중첩 된 종속성 주석이있는 동적로드의 경우 시나리오가 문제가 있다고 말하는 것으로 충분합니다. 당신이 처음에 종속성 트리 (즉, 당신이 그들의 중첩 된 의존성 주석에 대해 알아 스크립트를로드 할 기다리지 않는다이다)에 대해 알고있는 경우


그러나, 당신은 쉽게 동적 병렬 로딩을 활용할 수 있습니다 확신 할 수있는 순서를 유지합니다. 당신은 쉽게이 작업을 수행 할 수 있습니다

B C E D

와 병렬로 모두 5로드, 여전히 언급 한 바와 같이 그들이 그 적절한 순서로 실행 확인하고있다. 종속성 트리와 필요한 실행 순서를 파악하는 가장 좋은 방법은 모든 스크립트를 살펴보고 목록이 무엇인지, 필요한 순서를 파악하는 빌드 프로세스를 만드는 것입니다.LABjs 사용

상술 그 체인과 같을 것이다 :

$ LAB.setOptions ({AlwaysPreserveOrder : TRUE}) 스크립트 ([B, C, A, E, D]).

아주 간단하고 간단합니다. 처음에 그 목록/주문이 무엇인지 알고 있다고 가정합니다. 빌드 스크립트로 HTML 페이지에 한 줄의 코드를 추가하면 좋을 것입니다.

  1. : 당신이 (내가 일의이 유형을 필요로 내 다양한 ​​프로젝트를 구축 한 것을 내 자신이) 그렇게하는 등의 빌드 스크립트가없는 경우

    , 당신은 두 가지 선택이

    중첩 종속성 설명을 사용하지 마십시오. 종속성 목록 (위의 목록)을 사용자가 직접 관리하고 올바른 순서로 있는지 확인하십시오. 10 년 이상 브라우저에서 스크립트 태그를 사용하는 사람들이 잘 작동했기 때문에 대부분의 사이트에서 스크립트 태그를 사용하는 것으로 충분할 것입니다. 나는 수동으로 관리하는 많은 사이트에서 LABjs 체인을 사용하고 있으며, LABj를 사용하는 수천 개의 다른 사이트처럼 전혀 문제가되지 않습니다.

  2. 모든 파일을 하나의 파일에 넣는 빌드 스크립트 (Steal과 같은)를 사용하십시오 (물론 올바른 순서도 알아야합니다!). 병렬 로딩 혜택을 얻지 못합니다. 파머.

이 문제는 현재 당면한 문제에 대해 조명을 가하기를 바랍니다.

관련 문제