JavaScript 차단 콘텐츠는 페이지에서 웹 사이트에서 다운로드합니다

StackOverflow https://stackoverflow.com/questions/658599

  •  20-08-2019
  •  | 
  •  

문제

이것이 귀하의 웹 사이트에 JavaScript를 포함시키는 가장 좋은 방법입니까? http://www.webdigi.co.uk/blog/2009/avoid-javaScript-blocking-content-download-onyour-website-during-page-load/

도움이 되었습니까?

해결책

웹 사이트에 JavaScript를 포함시키는 가장 좋은 방법은 가능한 한 적은 수의 파일을 포함시키는 것입니다. ~에서 페이지의*, 모든 마크 업 및 기타 자산이로드 된 후. 그렇게하는 방식으로도 격려하는 이점도 있습니다.진보적 인 향상"개발 모델.

*Yahoo는 이것을 연구하기 위해 적극적으로 많은 돈을 소비하며, 그들의 발견을 게시하는 전담, 전임자들 (훌륭한 Steve Souders 포함)을 가지고 있습니다. 온라인 그리고에서 책 양식.

다른 팁

모든 규모의 상황처럼 보이지 않으므로 종종이 유명한 기사에 의지하여 다음과 같은 질문에 대답하는 데 도움이됩니다.

http://developer.yahoo.com/performance/rules.html

팟 캐스트 중 하나에서 언급되었지만 별도의 도메인 또는 하위 도메인에서 JavaScript를 호스팅하면 브라우저가 더 많은 연결을 열고 JS와 나머지 페이지를 동시에 다운로드 할 수 있습니다. 그렇기 때문에 많은 사람들이 Google의 jQuery 인스턴스와 자신의 jQuery 인스턴스에 연결하기로 선택한 이유입니다. 이 예제에는 캐치인 혜택이 있지만 핵심 원칙은 유지됩니다.

간단히 말해서 기사는 첨부하라고 말합니다 <script> 노드는 동적으로 DOM 스크립트 파일의 병렬 다운로드를 달성하기 위해. 이것은 작동하며 새로운 것이 아닙니다.

그러나이 방법의 가장 큰 단점을 언급하지 못합니다. 스크립트는 병렬로 다운로드되지만 순서는 실행 결정 론적이지 않습니다. 즉, 다운로드를 마치는 순서대로 실행하는 반면 Firefox는 DOM에 첨부 된 순서대로 실행합니다.

이것은 문제입니다. 예를 들어, 스크립트 A와 스크립트 B는 해당 기술을 사용하여 추가됩니다. 이제 스크립트 A가 jQuery이고 스크립트 B가 다음을 수행한다고 상상해보십시오.

$(document).ready(function(){...})

즉, 어떤 이유로 든 (예 : 네트워크 트래픽, 캐시 미스) 스크립트 B가 스크립트 A 전에 다운로드를 완료하면 jQuery가로드되기 전에 실행되므로 스크립트 B가 마무리됩니다.

보다 이 기사 더 나은 설명을 위해.

렉스 M의 답변 갈 길입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top