为啥一些主要网站使用无效的 HTML?

Posted

技术标签:

【中文标题】为啥一些主要网站使用无效的 HTML?【英文标题】:Why do some major websites use invalid HTML?为什么一些主要网站使用无效的 HTML? 【发布时间】:2011-01-03 01:13:29 【问题描述】:

我注意到许多网站,甚至是 Google 和一些银行网站,html 的编写都很糟糕,属性值周围没有引号,或者在链接中使用的字符(例如 & 符号)没有正确转义。换句话说,许多人使用无法验证的标记。

我很好奇他们的原因。 HTML 有简单的规则,令人难以置信的是它们似乎没有遵循这些规则。还是他们使用的程序只是吐出代码?

【问题讨论】:

另见***.com/questions/1967191/… 我建议将其设为社区 wiki,如果您想避免几乎不可避免的关闭,也许可以修改问题以减少争论。 我相信大多数谷歌网站都是基于 GWT 的,这是一个自动生成 html+css+javascript 的 java 框架。 除了争论和主观之外,您实际上也是错误的。例如,HTML 4 和 5 确实 需要在属性 values.attributes 周围加上引号 无意争论,为什么?社区维基在哪里.. 会感兴趣。感谢其他链接,Chetan。 【参考方案1】:

大多数人的答案基本上是正确的——当你每天为一个页面提供十亿次服务时,规则是不同的。字节开始变得重要,当前的压缩级别清楚地表明谷歌关心节省带宽。

几点:

第一,人们暗示 Google 节省带宽的原因是经济原因。不太可能。与 Google 搜索结果页面上的所有属性(Youtube、Blogger、地图、Gmail 等)的总和相比,即使是每天在 Google 搜索结果页面上节省的几 TB 数据也只是杯水车薪。更有可能的是,Google 想要它的搜索结果页面,特别是在尽可能多的设备上尽可能快地加载。是的,当页面每天加载十亿次时,字节很重要,但当您的用户在撒哈拉沙漠使用卫星电话并努力获得 1kbps 时,字节也很重要。

第二,XHTML 等的编纂标准与自 1994 年以来在所有浏览器中实际运行的事实上的标准之间存在差异。在这里,Google 的规模很重要,因为大多数 Web 开发人员都很高兴忽略任何占用户不到 0.1% 的麻烦浏览器,对于谷歌来说,这 0.1% 可能是 50 万人。他们很重要。所以他们的搜索结果页面应该可以在 IE 5.5 上运行。这就是他们仍然在许多高价值页面上使用表格进行布局的原因——它仍然是在大多数浏览器上“正常工作”的布局。

作为练习,在 Google 实习期间,我编写了一个完全符合 XHTML/CSS 版本的 Google 搜索结果页面并展示了它。最终问题出现了——我们为什么要提供如此大杂烩的 HTML?我们不应该带领网络开发社区走向标准吗?我得到的答案几乎是上面的第二点。 Google 确实遵循了一个标准——不是网络乌托邦的“不会很好”的标准,而是现实的“到处都可以工作”的标准。

【讨论】:

“真实世界”洞察力的好答案。 +1 "...对于谷歌来说,这 0.1% 可能是 50 万人。"很好的视角(尤其是从“内部”的人那里)。 但是我认为他们应该只为损坏的网络浏览器提供损坏的 HTML。【参考方案2】:

Google 编写糟糕的 HTML 是有充分理由的——他们从搜索页面中删除的每个字符都会为他们每天节省可能千兆字节的带宽。

【讨论】:

对等 blogs.broughturner.com/2009/04/… 协议降低了带宽成本,因此很难估计带宽节约与 Google 考虑的其他因素的竞争程度。 这并不意味着 Google 的程序员使用了无效的 html 代码。他们的干净工作很可能是在进入实时服务器之前经过过滤器,以去除任何不需要的字符(如他们主页的来源所见)。 这个神话已经被多次揭穿,指出谷歌甚至没有优化他们的徽标图像,这将节省他们 一分钟 千兆字节的带宽。【参考方案3】:

与 discussed previously 一样,谷歌这样做是出于带宽原因。

对于银行和其他企业网站,可能有多种原因-

    CMS 吐出无效的 HTML 织梦者,说得够多了。 倾向于使用商业 UI 组件,这些组件设计用于即使在古老的浏览器上也能正常工作,因此它们会在谨慎方面犯错。 不强调良好的 HTML 和 Javascript 实践。他们中的许多人往往是 Java 或 .NET 商店,没有优秀的 UI 开发人员。 .NET 用户控件和 JSTL 标签库设计不当。

【讨论】:

您忘记了 MS Frontpage。生成的代码比 Dreamweaver 想象的要差得多。无法告诉你我浪费了多少小时从 Frontpage 清理别人的代码,因为所有垃圾几乎无法阅读。 或者将Word文档导出为HTML并上传为网页。丑得要死。【参考方案4】:

对于谷歌等几个网站来说,拥有完美的代码并不是“那么”重要。

然而,网页的总大小是。 HTML 代码中节省的几个字节可能意味着数百美元的带宽。

因此,如果他们可以确定他们的页面会正确呈现,他们会毫不犹豫地调整他们的 HTML。

【讨论】:

【参考方案5】:

一般来说,编写网站代码很容易,因此对于没有经验或非程序员的入门门槛非常低。这使得生成子标准页面变得容易,并且网络上到处都是。将其与 Microsoft Frontpage 之类的工具结合起来,可以更轻松地创建网站(甚至更容易生成糟糕的 HTML 代码),但情况会很糟糕。

【讨论】:

【参考方案6】:

The nice thing about standards is that you have so many to choose from.

【讨论】:

以上是关于为啥一些主要网站使用无效的 HTML?的主要内容,如果未能解决你的问题,请参考以下文章

html为啥总是要刷新才能同步修改

为啥我的 twitter oauth 访问令牌无效/过期

用ASP.NET做网站时,为啥设置了showMessageBox属性为True却不会弹出窗口?

为啥做网站后台开发要用到JAVA和JS?

为啥使用PhoneGap编译移动网站时HTML表格没有样式?

为啥 Python 网站上的一些代码示例不使用 `class classname(object):` 约定? [复制]