网页能经得起未来考验吗



我知道<!DOCTYPE html>使浏览器以标准模式呈现页面,但这并不能防止您的页面在HTML 6出现时崩溃。

与其让标准如此通用,为什么他们不让它在页面顶部明确指定目标标准的版本?代替<!DOCTYPE html>,做一些类似<!DOCTYPE html=5>的事情,这样当未来的浏览器出现HTML 6时,当他们看到行<!DOCTYPE html=5>时,他们知道这个页面不知道HTML 6标准,所以为了保证页面不会崩溃,浏览器会回到HTML 5标准。

这就像是一种向后兼容的方法,因此您今天编写的页面可以保证工作几十年。当然,你不应该等几十年才更新你的页面,但至少你知道,当新版本的标准发布时,它不会崩溃,同时你的页面支持旧浏览器,而不会更改一行HTML。

为什么事情不是这样的?这种方法有什么问题?

我知道<!DOCTYPE html>使浏览器以标准模式呈现页面,但这并不能防止您的页面在HTML 6出现时崩溃。

是的。添加到HTML的内容被设计为向后兼容,这样浏览器就不会开始错误地呈现旧页面。

与其让标准如此通用,为什么他们不让它在页面顶部明确指定目标标准的版本?

他们尝试过,尽管原因不同(HTML是作为SGML应用程序设计的,但浏览器并没有实现它)。HTML 5之前的所有HTML和XHTML版本都是这样做的。浏览器没有区分不同的版本(只区分怪癖/几乎是标准/标准模式,所有这些模式对CSS和DOM的处理的影响远远大于对HTML的处理)。大多数作者编写的代码与他们使用的Doctype不匹配。

如果浏览器看到无法识别的Doctype,该怎么办?它可以拒绝呈现页面(这对用户没有任何帮助),也可以尽力呈现页面(它就是这样做的)。

如果浏览器看到不支持文档中元素的Doctype,该怎么办?它可以忽略它们(这对任何人都没有帮助),抛出错误(这可能对开发人员有帮助,但前提是开发人员在市场上最严格的浏览器中进行了测试,否则只会伤害用户),也可以尽可能地渲染它们(这就是它所做的)。

Doctype Switching和Quirks模式的目的不是支持为旧版本的HTML设计的网页,而是支持为早期的、非常bug的浏览器设计的网页。

如今,浏览器设计得更好,测试得更严格,它们的作者更善于为新的HTML/CSS/DOM功能编写规范,为它们创建测试套件,并在它们公开之前拥有该功能的多个实现(在不同的浏览器中),这些实现是不固定的,不会锁定在浏览器内部的配置选项后面。这大大减少了浏览器更新时可能出现故障的数量,因此不存在需要保持向后兼容的重大新错误。

他们知道这个页面对HTML6标准一无所知,所以为了保证页面不会崩溃,浏览器回到了HTML5标准。

请参阅上面关于向后兼容性的内容。

HTML内容本身是否为"futureprof"并不重要,因为这仍然无法启用/纠正未来浏览器中可能存在的增强/更改功能。这实际上取决于浏览器开发人员,以确保他们的更改是向后兼容的。国际海事组织,期望你现在符合现行标准的东西在5年后会按照你想要的方式行事是不合理的。

如果该网站被认为是重要的,它将不断发展,以保持合理的最新状态。

最新更新