Web 浏览器对看似格式错误的文件的容忍度
Web Browser's Tolerance of Seemingly Malformed files
浏览器对在我看来是"格式错误"的代码的容忍度是什么?相比之下,传统的编程语言非常不能容忍看似微不足道的错误(例如,缺少";",ANSI C文件末尾的换行符,忘记在Java中导入ArrayList,没有左手赋值的行"5;"(?
我所说的明显格式错误的代码是什么意思
前几天我用JSP生成HTML页面,当查看输出时,我想"哇,那个表格看起来很糟糕,最好设置它。 所以我转到.jsp文件,查找<表>标签,查找<表>标签,然后......。它不在那里表>。有头的,tr的,td的,tfoot的,但没有桌子包裹它们。表>
来自其他编程语言(.NET语言,C,Java,Ocaml等(的想法,我的Web浏览器,所有常见的Web浏览器,接受损坏的html仍然让我感到惊讶。我可以理解它这样做的一些情况,例如,如果它无法识别尖端的新实验性HTML9标签。但我仍然在努力理解为什么浏览器会接受 HTML、CSS 或 Javascript 中的错误,比如定义表外的行或调用未定义的函数。在 ANSI C 中,如果我忘记了文件末尾的换行符,编译器会在编译失败之前对我尖叫至少两次!然而,Chrome、IE和Mozilla似乎让HTML、CSS和Javascript逍遥法外。
Rhumborl写道:"基本上不存在的标准向后兼容",这很简单,但确实如此。
维基百科关于网络浏览器历史的概述文章在总结了浏览器大战之后说:
战争将网络交到了数百万普通PC用户的手中,但表明了网络的商业化如何阻碍标准的努力。Microsoft和Netscape都在其产品中自由地加入了HTML的专有扩展,并试图通过产品差异化获得优势,导致W3C接受了Håkon Wium Lie提出的级联样式表,而不是Netscape的JavaScript样式表(JSSS(。
简而言之,各种浏览器供应商都试图遵循拥抱和扩展的策略,每个供应商在广泛使用后立即采用其他浏览器的新功能,然后添加自己的"改进"。 只有随着Silverlight的失败和HTML5的兴起,我们才能看到这个时代的明确结束。
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- CKFinder 3为所选文件返回错误的URL
- 生成pdf或其他非html文件时的错误处理
- 有什么“;错误的”;将javascript放在asp.net表单上,而不是放在单独的文件中
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- 从安卓设备将图像上传到服务器时,文件扩展名错误
- 在量角器中创建一个.txt错误输出文件是手动的,而不是控制台错误
- 输入类型文件的未捕获类型错误
- 使用ajax上传的文件返回错误,但使用c#在asp.net的服务器端正常提交的文件
- 如何使用JavaScript粘贴原始二进制文件而不出现“无效字符”错误
- 放大弹出生成“;找不到文件”;YouTube视频的错误
- 在页面对象文件中验证sendKeys结果会导致未定义的错误(Protractor)
- 在浏览器中打开文本文件-服务器上出现错误
- IE 9 BHO插件.加载外部JS文件时出现错误SCRIPT1014
- 使用SeleniumWebdriver将文本复制到文件时出现编译错误的解决方案
- 使用.htaccess压缩文件时出现500错误
- 文件上传长度错误 (..文件长度)
- HAproxy:OPTIONS和POST方法的不同503错误文件
- 为什么ajax调用中的错误文件路径会杀死整个javascript文件
- JW播放器载入媒体错误:文件无法播放