이 글은 주로 HTML 페이지에 JavaScript를 도입하는 여러 가지 방법을 기반으로 HTML에서 JavaScript 스크립트의 실행 순서를 분석합니다
1. JavaScript 스크립트 실행의 차단 특성에 대하여
JavaScript는 브라우저에서 구문 분석되고 실행될 때 차단 특성을 가지고 있습니다. 즉, JavaScript 코드가 실행되면 다른 리소스의 구문 분석, 렌더링 및 다운로드를 중지하고 스크립트가 완료될 때까지 기다려야 합니다1. 이는 논란의 여지가 없으며 동작은 모든 브라우저에서 일관됩니다. 그 이유를 이해하는 것은 어렵지 않습니다. 브라우저에는 안정적인 DOM 구조가 필요하며 JavaScript는 다음과 같은 경우 DOM을 수정할 수 있습니다(DOM 구조 변경 또는 특정 DOM 노드 수정). JavaScript가 실행되는 동안 페이지의 구문 분석이 계속되면 전체 구문 분석 프로세스를 제어하기가 어려워지고 구문 분석 오류 가능성도 매우 높아집니다.
그러나 여기에는 주의가 필요한 또 다른 문제가 있습니다. 외부 스크립트의 경우 스크립트 다운로드 프로세스도 포함됩니다. 초기 브라우저에서는 JavaScript 파일을 다운로드하면 페이지 구문 분석이 차단될 뿐만 아니라 다른 리소스도 차단됩니다. 페이지의 다운로드(기타 JavaScript 스크립트 파일, 외부 CSS 파일 및 이미지와 같은 외부 리소스 포함) IE8, Firefox3.5, Safari4 및 Chrome2부터 JavaScript의 병렬 다운로드가 허용됩니다. 동시에 JavaScript 파일 다운로드는 다른 리소스의 다운로드를 차단하지 않습니다(이전 버전에서는 JavaScript 파일 다운로드도 차단됩니다). 다른 리소스 다운로드).
참고: 동일한 도메인 이름 아래의 최대 연결 수에 대한 제한은 브라우저마다 다릅니다. HTTP1.1 프로토콜 사양의 요구 사항은 2보다 클 수 없지만 현재 대부분의 브라우저는 최대 연결 수를 제공합니다. .2 이상, IE6/7 모두 2, IE8은 6으로 업그레이드되었으며, Firefox와 Chrome도 6으로 업그레이드되었습니다. 물론 이 설정도 자세한 내용은 http://를 참조하세요. www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/
2. 스크립트 실행 순서에 대해
브라우저는 위에서 아래로 순서대로 페이지를 파싱하므로 일반적인 상황에서 JavaScript 스크립트의 실행 순서도 위에서 아래로, 즉 페이지에 먼저 나타나는 코드나 먼저 소개되는 코드는 다음과 같습니다. JavaScript 파일의 병렬 다운로드가 허용되는 경우에도 항상 먼저 실행됩니다. 여기서는 "정상적인 상황"을 빨간색으로 표시했습니다. 이유는 무엇입니까? 우리는 JavaScript 코드를 HTML에 추가하는 방법이 여러 가지가 있다는 것을 알고 있으며, 그 내용은 다음과 같이 요약됩니다(requirejs 또는 seajs와 같은 모듈 로더에 관계없이).
(1) 일반적인 소개: 즉, 페이지의