2014-03-18 3 views
0

현재 브라우저가 일명 504의 게이트웨이 시간 초과를 갖는 스크립트 src에 대해 GET을 수행하는 경우 응답이 실제로 60 초 후에 전달 될 때까지 브라우저가 중지되고 렌더링이 중지되는 이유는 무엇입니까? 브라우저를 손상시키는 것 외에도 프로덕션 자바 스크립트 애플리케이션에서 발생할 수있는 최악의 상황이 아닌가? 이 응용 프로그램 개발자가 렌더링 및 스크립트 실행의 나머지 부분을 차단하지 못하도록 할 수있는 방법이 있습니까?게이트웨이 시간 초과 및 브라우저 렌더링

답변

1

스크립트가 인라인 (예 : 동적으로로드되지 않음)이고 defer 또는 async으로 표시되지 않은 경우 스크립트가 순서대로 동 기적으로 처리되어야하며 브라우저가 스크립트를 사용하지 않고 진행할 수 없습니다. 인라인 <script> 태그 (특별한 속성없이)는 순서대로 처리되며 브라우저는이를 처리해야합니다 (MUST).

당신은 당신의 페이지, 스크립트가로드 될 때까지 기다리지 않고 렌더링하기 위해 다음 동적으로로드 할 수 있습니다 또는 당신이 그것을 async를 표시 할 수 있습니다 또는 오른쪽 </body> 태그 기다리지 않습니다 페이지 렌더링 전에 <script> 태그를 넣어하려는 경우 그것. defer 또는 async을 사용하는 경우 다른 스크립트가이 스크립트로드에 종속되어 있지 않은지 확인해야합니다. 그렇지 않으면이 스크립트가로드되기 전에 스크립트가 실행될 수 있습니다.

더 많은 정보를 원하시면 다음 참조를 참조하십시오 : 그것은 중요한 이유

load and execute order of scripts

당신은 스크립트 태그 내에서 DOM에 자바 스크립트에 대해 이야기하는 경우 Script Tag - async & defer

0

이 브라우저는 항상 어떤 기적을로드합니다 JS 하단을 페이지 하단에 배치하는 것입니다. 이것이 큰 문제가되는 경우 lab.js http://labjs.com/과 같은 비동기 로딩 라이브러리를 사용하는 것이 좋습니다.

고급 JS로 들어가고 스크립트 로딩 및 종속성을 위해 AMD 패턴과 같은 것을 활용하려는 경우 http://requirejs.org/을 사용할 수 있습니다.