2010-06-14 3 views

답변

153

그것은 <body> 또는 <head> 태그 validate 외부는하지 않습니다. 또한 DOM 조작을하지 않는 한 —을 만들지 않는 한 본체 요소가 완전히로드되기 전에 break IE 수 있습니다. 은 닫는 직전에 넣습니다. </body>.

<html> 
    .... 
    <body> 
    .... 
    <script type="text/javascript" src="theJs.js"></script> 
    </body> 
</html> 
+0

YSlow와 같은 앱은 실제로 페이지 끝 부분에 자바 스크립트를 포함시킬 것을 제안합니다. 전반적인로드 시간이 빨라지지는 않지만 관련 내용을 먼저로드 할 수 있습니다. 여전히 태그 안에 넣는 것이 가장 좋습니다. –

+10

@epalla : body 태그의 끝에 스크립트를 넣으면 거기에 도착할 때까지로드 할 다른 내용이 없으므로 바깥 쪽이나 안쪽에 배치하는 것과는 약간의 차이가 있어야합니다. 그런 다음 페이지의 추가 혜택을 얻으실 수 있습니다. 이는 내 답변에서 확인하려고했던 부분이었습니다. –

+1

네 답이 좋기 때문에 나는 너와 동의했다. JS를 오랫동안 해왔 던 것처럼 머리 대신에 페이지의 맨 아래에 놓을 이유가 있다고 덧붙였습니다. –

69

예. 본문에 대한 끝 태그 뒤에 html 요소에 대한 설명과 끝 태그 만 허용됩니다.

브라우저는 오류 복구를 수행 할 수 있지만 절대 의존해서는 안됩니다.

+8

더 나은 답변입니다. 휴대 전화가 너무 많아 새로운 브라우저가 너무 많아서 단 한 건의 닫는 태그를 잘라내어 붙여 넣기 만하면 잘못 될 위험이 있습니다. –

0

예. 그러나 외부에 코드를 추가하면 대부분의 브라우저에서 문제를 해결할 것이므로 대부분의 경우가 끝나지 않을 것입니다.하지만 여전히 나쁜 습관이 있습니다.

28

Andy에 따르면이 문서는 유효하지 않지만 그럼에도 불구하고 스크립트는 여전히 해석됩니다. 예를 들어 웹킷에서 snippet를 참조하십시오

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; 
    ... 
+9

"정말 깨진 HTML을 지원합니다." - 그게 전부라고 생각해. –

8

IE는 더 이상이를 허용하지 않습니다 (버전 10 이후, 저는 믿습니다)과 같은 스크립트를 무시합니다. FF와 크롬은 여전히 ​​그들을 용납하지만 언젠가는 비표준으로 떨어 뜨릴 가능성이 있습니다.

+1

하지만 Google에서는 '2014 년 4 월 10 일에 마지막으로 업데이트 됨'으로 G + 로그인을 수행하는 방법을 예로 들어이를 수행합니다. 서버 (https://developers.google.com/+/quickstart/java)의 자바 버전에서 가져 왔지만 아마도 모든 HTML + js와 같습니다. – Tom

1

Google은 실제로 '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

+7

당신은'body' 엘리먼트 바깥에 물건을 넣지 않아도됩니다. 그 구글 기사는 그런 일을 누군가에게 조언하지 않는다. – ChaseMoskal

+1

Google 페이지가 사실 정확히 말한 것 같습니다. – 10us

+2

한 번에 페이지 *가 그런 것을 권장했지만 더 이상 보이지 않는 것 같습니다. (현재 자바 스크립트와 함께 동적로드가 있습니다.) 독일어 버전은 최신이 아니며 이전 코드 예제를 포함합니다. – bodo

관련 문제