페이지가 브라우저에로드 될 때 정확히 무슨 일이 발생했는지에 대한 기본적인 지식이 부족하다는 것을 깨달았습니다. 여기
<head>
<script src="jquery.js" type="text/javascript"></script>
<script src="first.js" type="text/javascript"></script>
</head>
<body>
...
<script type="text/javascript" id="middle">
// some more JS here...
</script>
...
<script src="last.js" type="text/javascript"></script>
</body>
내가 가지고있는 질문은 다음과 같습니다 :
내가이 같은 구조를 가지고 가정일이 일어나고 무엇 순서 ? 먼저 DOM이 실행 된 후 JS가 실행됩니다. 그 반대의 경우입니까, 아니면 동시에 실행중인 경우 (또는 JS 파일 다운로드가 끝나자 마자 DOM에 관계없이)? 스크립트가 순서대로로드된다는 것을 알고 있습니다.
$(document).ready()
은 어디에 있습니까? Firebug의 Net 탭에서DOMContentLoaded
이벤트와load
이벤트가 표시됩니다.DOMContentLoaded
이벤트가 발생하면$(document).ready()
이 트리거됩니까? 이에 대한 구체적인 정보를 찾을 수 없습니다 (모든 사람들은 "DOM로드 시점"을 언급합니다).정확히 "DOM로드시"는 무엇을 의미합니까? 모든 HTML/JS가 브라우저에 의해 다운로드되고 구문 분석 되었습니까? 아니면 그냥 HTML?
다음 시나리오를 사용할 수 있습니다.
last.js
에 코드를 호출하지만 last.js가로드되기 전에 실행되는$(document).ready()
이 있습니까? 어디에서 가장 가능성이 높을까요 (first.js
또는 인라인 코드 블록)? 이 시나리오를 방지하려면 어떻게해야합니까?
나는의 큰 그림을 알아 보았 싶은 일이 무엇 무엇을 (만약에 전혀)에 따라 달라집니다.
매우 흥미 롭습니다. 미래 지향적 인 관점에 감사드립니다! – montrealist
실제로 스크립트를 맨 아래에 놓는 것은 도움이되지만 페이지가로드되기 전에 스크립트를 실행해야합니다. 비동기 적으로로드하는 것이 훨씬 낫습니다. 즉, 브라우저를 맨 위에 올려 놓더라도 브라우저는 계속 페이지를 파싱하고 스크립트를 병렬로로드합니다. 유일한 문제는 더 이상 스크립트가 실행되는 순서를 알지 못한다는 것입니다. – Jens
나는의 시작에서
의 끝으로 옮겨진 스크립트로 IE9에서 aspx 페이지를 테스트했으며 스크립트가 머리 속에있을 때 더 빠른로드 시간을 발견했다. 사용자 경험을 측정하기 위해로드하는 비디오를 기록했습니다. 나에게 확실한 승자가 없다. – mishal153