HTML 中的属性值有多长?
我data-foo="bar"在一个新应用程序中使用 HTML5 样式数据属性 ( ),在一个地方存储大量数据(超过 100 个字符)非常方便。虽然我怀疑这个数量是可以的,但它提出了多少是太多的问题?
data-foo="bar"
从 HTML 4 的角度来看,属性是一种 SGML 构造。它们的限制在HTML 4 的 SGML 声明中定义:
数量 SGMLREF ATTCNT 60 -- 增加 -- ATTSPLEN 65536 -- 这些是最大值 -- LITLEN 65536——在声明中允许—— NAMELEN 65536 -- 在实际中避免固定限制 -- PILEN 65536 -- HTML UA 的实现 -- TAGLVL 100 泰格伦 65536 GRGTCNT 150 玻璃钢 64
这里讨论的值是“ATTSPLEN”,它是元素属性规范列表的限制(应该是该元素所有属性的总大小)。然而,上面的注释提到应该避免固定限制,因此在大多数实现中,除了可用内存之外,可能没有真正的限制。
看起来 HTML 5 对属性值的长度没有限制 。
正如规范所说,“这个版本的 HTML 因此返回到非 SGML 基础。”
稍后,在描述如何解析 HTML 5 时,出现以下段落( 强调 添加):
下面描述的算法 对生成的 DOM 树的深度或标签名称、属性名称、 属性值、文本节点等* 的长度 没有限制 。虽然鼓励实现者避免任意限制,但认识到实际问题可能会强制用户代理施加嵌套深度限制。 ***
因此,(理论上) HTML 5 属性的长度/大小没有限制 。