1. ホーム
  2. ハイパーリンク

[解決済み】HTML属性の長さに限界はありますか?

2022-04-04 11:26:23

質問

HTMLの属性値の長さはどのくらいが長すぎるのでしょうか?

HTML5スタイルのデータ属性( data-foo="bar" 新しいアプリケーションで、1つの場所にかなりの量のデータ(100文字以上)を格納するのが本当に便利です。) この程度の量であれば問題ないと思うのですが、どの程度が多すぎるのか、という疑問が生じます。

どのように解決するのか?

HTML 4

HTML 4の観点からは、属性はSGMLの構成要素です。 その限界は HTML 4 の SGML 宣言 :

         数量 sgmlref
                  ATTCNT 60 -- 増加した--。
                  ATTSPLEN 65536 -- これらは最大の値である --。
                  LITLEN 65536 -- 宣言で許可されている --。
                  NAMELEN 65536 -- 実際のところ、固定的な制限は避けて --。
                  PILEN 65536 -- HTML UAの実装--。
                  TAGLVL 100
                  TAGLEN 65536
                  GRPGTCNT 150
                  GRPCNT 64

ここで問題になっている値は "ATTSPLEN" で、これは要素の属性指定リスト(その要素のすべての属性の合計サイズであるべき)の制限となります。 しかし、上記のノートでは、固定的な制限は避けるべきであると述べられているので、ほとんどの実装では、利用可能なメモリ以外に実際の制限はないと思われます。

HTML 5

と思われるでしょう。 HTML 5に限界はない は、属性値の長さに関するものです。

として 仕様 とあるように、このバージョンのHTMLは非SGMLのベースに戻ります。

その後、HTML 5のパース方法を説明する際に、次のような一節が登場する( 強調 を追加しました)。

以下に説明するアルゴリズムでは 制限なし DOMツリーの深さ が生成され、あるいは の長さについて タグ の名前、属性名。 属性 値 テキストノードなど。一方 を避けることが推奨されます。 任意に制限することができるが 実用的な懸念は、おそらく ユーザーエージェントはネストを強制的に の深さを制限する。

したがって、(理論的には) HTML 5の属性の長さやサイズに制限はありません。 .