例如,SO在加载时抛出超过50个CSS错误和警告,就像大多数流行的网站一样。
仅仅检测正确的浏览器并动态加载正确的CSS就很简单了。
我试图理解为什么这些错误/警告被大多数网站忽略?
即使解析无用的CSS对性能的影响可能在微秒范围内,这难道不是草率的编码吗?
两个原因:
-
不可能检测到浏览器在客户端使用的东西。您可以嗅探与请求一起发送的
user-agent
标头(如果存在的话),但它仅与浏览器制造商一样可靠。和用户(因为用户可以禁用或更改头值)— -
使用浏览器特定的CSS、DOM或Javascript"特性"鼓励非标准实现。请参阅http://www.webstandards.org/了解为什么这很重要。你所建议的是回到web开发的"黑暗时代"
在你的页面上简单地失败或显示一个横幅要好得多,注意到客户端使用的浏览器是非标准的,并且考虑到浏览器是多么便宜—免费的!本;暗示如果用户有一个更好的浏览器,他们会有更好的网络体验。
Jon Postel(愿他安息)曾经说过,对于鲁棒性应用程序来说,应该严格控制它们发出的内容,并容忍它们接受的内容。早期的HTTP实现和早期的HTML渲染引擎对它们所能接受的东西是极端宽容的,这最终导致了浏览器大战,web浏览器实现了各种各样的非标准扩展,web服务器提供了各种各样的破碎的、格式错误的标记。我认为,如果浏览器制造商在接收非标准或格式错误的数据时抛出错误,我们的情况会好得多。
回答OPs的问题:
我试图理解为什么这些错误/警告被大多数网站忽略?
简短的回答是,因为标准规定了特定的行为。