2014-01-10 2 views
2

나는 <!DOCTYPE html> 브라우저가 표준 모드에서 페이지를 렌더링하지만 HTML 6이 나오면 페이지가 손상되는 것을 방지하지 않는다는 것을 알고 있습니다.

표준을 너무 일반적으로 만드는 대신 페이지 상단에서 명시 적으로 타겟팅하는 표준 버전을 지정하도록 설정하지 않으시겠습니까? <!DOCTYPE html> 대신에 <!DOCTYPE html=5>과 같은 방법으로 HTML 6과 함께 미래의 브라우저가 나타나면 <!DOCTYPE html=5> 행을 볼 수 있습니다. 따라서이 페이지는 HTML 6 표준에 대해 알지 못하기 때문에 페이지가 중단되지 않도록 할 수 있습니다. 브라우저는 HTML 5 표준으로 돌아갑니다.

이것은 이전 버전과의 호환성이 비슷하기 때문에 작성한 페이지는 수십 년 동안 사용할 수 있습니다. 물론 페이지를 업데이트하는 데 수십 년을 기다리지 않아도되지만 새로운 버전의 표준이 나올 때마다 중단되지 않으며 동시에 한 줄의 HTML을 변경하지 않고도 이전 버전의 브라우저를 지원합니다. .

왜 이런 식으로하지 않습니까? 그 접근 방식에있어 잘못된 점은 무엇입니까?웹 페이지를 향후 증명할 수 있습니까?

+0

웹을 업데이트 할 필요가 없기 때문에 웹을 사용할 수 없으므로 호환성을 업데이트해야합니다. 장래에 증명할 페이지를 많이 만들 수는 없습니다. –

+0

표준 모드에서 항상 렌더링하는 것이 중요하다고 생각합니다. 새로운 표준은 이전 버전과 호환됩니다. 개발자는 그 말도 안되는 것에 대해 걱정할 필요가 없습니다. – johnnycardy

+1

html5는 html5 페이지를 나눕니다. 이것은''으로 정의되며 모두 괜찮습니다. – Beterraba

답변

6

나는 <!DOCTYPE html> 브라우저가 표준 모드에서 페이지를 렌더링하지만 HTML 6이 나오면 페이지가 손상되는 것을 방지하지 않는다는 것을 알고 있습니다.

예. HTML 추가 기능은 이전 버전과의 호환이 가능하도록 설계되어 브라우저가 이전 버전의 페이지를 잘못 렌더링하지 않도록합니다.

표준을 너무 일반적으로 만드는 대신 페이지 상단에서 대상의 버전을 명시 적으로 지정하지 않는 이유는 무엇입니까?

다른 이유로 (HTML은 SGML 응용 프로그램으로 설계되었지만 브라우저는이를 구현하지 않았 음). HTML 5 이전의 모든 HTML 및 XHTML 버전이 그렇게했습니다. 브라우저는 버전을 구별하지 못했습니다 (단점/거의 표준/표준 모드 사이에서만, CSS와 DOM의 처리에 훨씬 더 많은 영향을받는 이 있으며 그 다음은입니다). 대부분의 저자는 그들이 사용한 Doctype에 맞는 코드를 작성하지 않았습니다.

인식 할 수없는 Doctype을 발견하면 어떻게해야합니까? 페이지를 렌더링하는 것을 거부하거나 (사용자를 전혀 도움이되지 않는) 페이지를 렌더링하는 것을 거부하거나 가능한 한 최선을 다해 렌더링하려고 시도 할 수 있습니다.

문서에있는 요소를 지원하지 않는 Doctype이 있으면 어떻게해야합니까? 개발자는 개발자를 도울 수있는 오류를 던지거나 개발자가 시장에서 가장 제한적인 브라우저에서 테스트 한 경우에만 그렇지 않으면 사용자에게 해를 끼치거나 개발자에게 도움을 줄 수 있습니다. 가능한 한 최선을 다합니다 (그것이 무엇인지).

Doctype Switching and Quirks 모드의 요점은 이전 버전의 HTML 용으로 설계된 웹 페이지가 아니라 초기의 버그가 많은 브라우저 용으로 설계된 페이지를 지원하는 것입니다.

오늘날 브라우저는 훨씬 더 잘 디자인되고 훨씬 엄격하게 테스트되며 작성자는 새로운 HTML/CSS/DOM 기능에 대한 사양을 작성하고 이에 대한 테스트 스위트를 작성하고 기능의 여러 구현을 사용하는 것이 좋습니다 브라우저)를 사용하기 전에 브라우저 내부의 구성 옵션 뒤에 잠겨 있지 않은 고정되지 않은 구현을 얻습니다. 이렇게하면 브라우저가 업데이트 될 때 중단 될 수있는 항목 수가 크게 줄어들어 이전 버전과의 호환성을 유지하는 데 필요한 중요한 새 버그가 없습니다.

그들은이 페이지가 HTML 6 표준에 대해 잘 모른다는 것을 알고 있기 때문에 페이지가 손상되지 않도록 브라우저가 HTML 5 표준으로 되돌아갑니다.

위의 내용을 참조하십시오.

+0

그래서 브라우저 개발자와 웹 개발자가 표준을 따르지 않았기 때문에이 접근 방식이 효과가 없었습니다. 그렇지 않으면 작동했을 것입니다. – AxiomaticNexus

+0

아니요. 나는 명확하지 않았습니다. 그래서이 기능을 사용하지 못했습니다. 이 기능은 사용자가 해결하려고하는 문제를 해결하도록 설계되지 않았습니다. (완전히 다른 이유로이 문제를 해결하지 못했습니다. – Quentin

1

HTML 콘텐츠 자체가 미래의 브라우저에 존재할 수있는 향상된/변경된 기능을 활성화/수정하는 데 여전히 아무런 역할을하지 않으므로 "미래 보장"이 중요하지 않습니다. 브라우저 개발자는 자신의 변경 사항이 이전 버전과 호환되는지 확인해야합니다. IMO, 현재 표준에 부합하는 것이 5 년을 원하는 방식으로 행동해야한다고 생각하는 것은 합리적이지 않습니다.

웹 사이트가 중요하다고 판단되는 경우 합리적인 수준으로 유지하기 위해 웹 사이트를 지속적으로 개발할 것입니다.

관련 문제