Web浏览器对看似格式错误的文件的容忍度

时间:2014-12-03 12:19:32

标签: javascript html web language-agnostic

浏览器容忍度的历史记录是什么?我认为"格式错误"码?相比之下,传统的编程语言非常不能容忍看似微不足道的错误(例如,缺少&#39 ;;',ANSI C文件末尾的换行符,忘记了Java中的ArrayList导入,拥有该行&#34 ; 5;"没有左手任务)?

我的意思是显然格式错误的代码

前几天我用JSP生成HTML页面,在查看输出时我想到了#Wow,那张桌子看起来很糟糕,风格更好。" 所以我转到.jsp文件,找到< table>标签,寻找< table>标签,.......它不在那里。有了thead,s,td,td,但是没有桌子包裹它们。

来自其他编程语言(.NET语言,C,Java,Ocaml等...)我的网络浏览器所有常见的网络浏览器,接受破解的HTML的想法仍然让我感到惊讶。在某些情况下,我可以理解这一点,例如,如果它没有识别出最先进的新实验性HTML9标签。但我仍然在努力理解为什么浏览器会接受HTML,CSS或Javascript中的错误,例如在表外定义行或调用未定义的函数。在ANSI C中,如果我忘记了文件末尾的换行符,编译器会在没有编译之前向我尖叫两次!然而,Chrome,IE和Mozilla似乎让HTML,CSS和Javascript逃脱了谋杀。

1 个答案:

答案 0 :(得分:2)

Rhumborl写道:“基本兼容不存在的标准,基本上”,这是简单但真实的。

关于history of web browsers的维基百科概述文章在总结浏览器大战后说:

  

战争将网络交给数百万普通PC用户,但展示了网络商业化如何阻碍标准工作。微软和Netscape都在他们的产品中广泛地引入了HTML的专有扩展,并试图通过产品差异化获得优势,从而接受了HåkonWium Lie对W3C的Netscape的JavaScript样式表(JSSS)提出的层叠样式表的接受。 / p>

简而言之,各种浏览器供应商都在尝试遵循一种拥抱和扩展的策略,每当他们广泛使用时都采用其他人的新功能,然后添加他们自己的“改进”。只有随着Silverlight的失败和HTML5的兴起,我们才能看到这个时代的明显结束。