본문 ( </body>
) 의 닫는 태그 뒤에 스크립트 태그를 배치하는 것이 얼마나 잘못입니까 ? ?
<html>
....
<body>
....
</body>
<script type="text/javascript" src="theJs.js"></script>
</html>
본문 ( </body>
) 의 닫는 태그 뒤에 스크립트 태그를 배치하는 것이 얼마나 잘못입니까 ? ?
<html>
....
<body>
....
</body>
<script type="text/javascript" src="theJs.js"></script>
</html>
답변:
또는 태그 외부 에서는 유효성을 검사 하지 않습니다 . 또한 body 요소가 완전히로드되기 전에 IE 를 중단 시킬 수있는 DOM 조작을하지 않는 한 닫는 직전에 배치하는 데 큰 차이가 없습니다 .<body>
<head>
</body>
<html>
....
<body>
....
<script type="text/javascript" src="theJs.js"></script>
</body>
</html>
<script src="..." defer>
모든 주요 브라우저에서 작동합니다 (IE9 이하에서는 잠재적으로 버그가 발생하지만).
예. 본문의 종료 태그 뒤에는 html 요소의 주석과 종료 태그 만 허용됩니다.
브라우저는 오류 복구를 수행 할 수 있지만 그에 의존해서는 안됩니다.
로 앤디는 문서가 유효하지만, 그럼에도 불구하고 스크립트가 여전히 해석됩니다하지 것이라고 말했다. 예를 들어 WebKit 의 스 니펫 을 참조하십시오 .
void HTMLParser::processCloseTag(Token* t)
{
// Support for really broken html.
// we never close the body tag, since some stupid web pages close it before
// the actual end of the doc.
// let's rely on the end() call to close things.
if (t->tagName == htmlTag || t->tagName == bodyTag
|| t->tagName == commentAtom)
return;
...
IE는 더 이상 이것을 허용하지 않으며 (버전 10 이후) 그런 스크립트를 무시합니다. FF와 Chrome은 여전히 허용하지만, 언젠가는 이것을 비표준으로 떨어 뜨릴 가능성이 있습니다.
W3C의 권장 프로세스에서 "element body"가 "parse error"인 경우 절차 적으로 "element script"를 삽입하십시오 . "트리 구성"에서 오류를 생성하고 "다시 토큰 화"를 실행하여 해당 컨텐츠를 처리하십시오. 추가 단계와 같습니다. 그런 다음에 만 "스크립트 실행"을 실행할 수 있습니다 . 스키마 프로세스를 참조하십시오 .
"구문 분석 오류"가 있습니다. "삽입 모드"를 "본문"으로 전환하고 토큰을 다시 처리하십시오.
기술적으로 브라우저를 통해 내부 프로세스, 표시 및 최적화 방법.
나는 누군가를 도왔기를 바랍니다.
실제로 'CSS 최적화'와 관련하여 권장합니다. 중요한 인라인 스타일을 인라인하고 나머지 파일 (css 파일)을 연기하는 것이 좋습니다.
예:
<html>
<head>
<style>
.blue{color:blue;}
</style>
</head>
<body>
<div class="blue">
Hello, world!
</div>
</body>
</html>
<noscript><link rel="stylesheet" href="small.css"></noscript>
참조 : https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery
body
요소 외부에 물건을 두지 않아야합니다 . 그 구글 기사는 그 누구도 그런 일을하도록 조언하지 않습니다.
최신 브라우저는 다음과 같이 본문에 스크립트 태그를 사용합니다.
<body>
<script src="scripts/main.js"></script>
</body>
기본적으로 이는 페이지가 완료되면 스크립트가로드되며 이는 특정 경우 (예 : DOM 조작)에 유용 할 수 있음을 의미합니다. 그러나 동일한 스크립트를 가져와 "defer"와 함께 헤드 태그에 넣는 것이 좋습니다. 동일한 효과를 낼 것입니다.
<head>
<script src="scripts/main.js" defer></script>
</head>
script
태그 event
에 스크립트 구문 분석시기를 결정하기 위해 정의 할 수 있는 속성 이있는 경우에 유용합니다 . 따라서 event="load" event="DOMContentLoaded"
DOM이 생성 된 후 또는 event="beforeunload"
윈도우 beforeunload
이벤트 에서 스크립트를 실행 해야 합니다 . 예 <script src="scripts/main.js" event="DOMContentLoaded"></script>
.