【问题标题】:Empty SRC attributes and poor performance空的 SRC 属性和较差的性能
【发布时间】:2014-06-30 19:18:42
【问题描述】:

最近我读到了 Nicholas C. Zakas 的这篇文章:

http://www.nczonline.net/blog/2009/11/30/empty-image-src-can-destroy-your-site/

它表示 IMG 和 SCRIPT 文件中的空 SRC 属性会导致性能下降。我的问题是:

如果根本没有 src 属性,是否仍然存在相同的性能问题?

例子:

<img id="image" />

另外,浏览器将如何解释这个?上面的代码会有问题吗?

非常感谢任何帮助。

【问题讨论】:

  • 一开始就不允许有一个没有src 属性的img 元素,所以我想说它在任何地方 发生时都可能存在问题。无论是否存在性能问题,您都应该努力尽可能地防止这种情况发生。
  • 现在浏览器比“2009”更智能。所描述的问题在新浏览器上不存在(已测试)。
  • 感谢 BoltClock - 那里是 W3 规范吗?
  • @user1360809:是的,在HTML 4 中,DTD 明确列出了所需的src 属性,在HTML5 中它说“src 属性必须存在”。
  • “所描述的问题在新浏览器上不存在” – 在理想的世界中,浏览器总是最新的,这实际上可能是一个有效的论点用于使用不带或带空 src 属性的 img 元素……

标签: javascript html image performance


【解决方案1】:

这是来自a very old version of the HTML spec

SRC(来源)

SRC 属性指定要嵌入的图像的 URI。其语法与标签的 HREF 属性相同。 SRC 是强制性的。

@src 是必需的,因此如果您的 &lt;img&gt; 缺少 @src,则它不是有效的 HTML。浏览器虽然非常宽容,但在这种情况下它们会做什么可能是特定于实现的。

编辑:from HTML 5 spec

src 属性必须存在,并且必须包含有效的非空 URL,这些 URL 可能被空格包围,引用非交互式、可选动画的图像资源,该资源是既没有分页也没有脚本。

因此,&lt;img&gt; 缺少或为空 @src 将不是有效的 HTML。

AFAIK,HTML 5 仍然没有指定浏览器应该如何处理缺少的 src 属性,尽管它确实说:

如果 src 属性没有设置,或者 alt 属性设置为空字符串,或者根本没有设置 alt 属性

元素不代表任何东西。

【讨论】:

  • 您选择引用旧的、过时的规范而不是最新的规范,或者至少引用仍在广泛使用的规范,有什么原因吗?
  • @BoltClock:没有理由,只是为了方便。由于它是来自 W3C 的第一个出现在 Google 搜索中的结果(显示的其他结果来自 w3schools 和 MDN),这是否令人满意?我很确定 img 标签的这一方面从那时起就没有改变过。
  • 事实证明。我猜你的搜索词之一是“强制”这个词——它确实首先返回了 HTML 3.0 规范(甚至没有返回 HTML 3.2 规范!),因为它是唯一使用该词的词。
  • @BoltClock:我从 HTML 5 规范中添加了更多引用,回想起来,我应该从一开始就这样做。
猜你喜欢
  • 2014-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多