回答:
HTML 4の観点からは、属性はSGMLの構成要素です。それらの制限は、HTML 4のSGML宣言で定義されています。
数量SGMLREF ATTCNT 60-増加- ATTSPLEN 65536-これらは最大の値です- LITLEN 65536-宣言で許可- NAMELEN 65536-実際には固定制限を回避します- PILEN 65536-HTML UAの実装- TAGLVL 100 タグレン65536 GRPGTCNT 150 GRPCNT 64
ここで問題になっている値は「ATTSPLEN」です。これは、要素の属性仕様リストの制限になります(これは、その要素のすべての属性の合計サイズである必要があります)。上記のメモでは、固定された制限は回避する必要があると述べられているため、ほとんどの実装で使用可能なメモリ以外に実際の制限はない可能性があります。
仕様にあるように、「このバージョンのHTMLは非SGMLベースに戻ります」とHTML 5は異なるようです。
後で、HTML 5を解析する方法を説明するときに、次の文章が表示されます(強調が追加されています)。
以下で説明するアルゴリズムで は、生成されるDOMツリーの深さ、またはタグ名、属性名、属性値、テキストノードなどの長さに制限はありません。実装者は任意の制限を回避することをお勧めしますが、実際的な問題はおそらくユーザーエージェントにネストの深さの制約を課すことになります。
それがあなたの答えだと思います。
私はちょうど長さ1000万の文字列を属性に入れ、それを再び取得するテストを書いたところ、正常に動作しました(Firefox 3.5.2およびInternet Explorer 7)。
5000万は、「このスクリプトの完了には時間がかかります」というメッセージが表示され、ブラウザがハングする原因になります。
9.1.2.3属性
要素の属性は、要素の開始タグ内で表現されます。
属性には名前と値があります。属性名は、スペース文字以外の1つ以上の文字で構成する必要があります。U+ 0000 NULL、U + 0022 QUOTATION MARK( ")、U + 0027アポストロフィ( ')、U + 003E GREATER-THAN SIGN(>)、U + 002F SOLIDUS(/)、およびU + 003D等号(=)文字、制御文字、およびUnicodeで定義されていないすべての文字。HTML構文では、属性名は小文字と大文字を組み合わせて記述できます。これは、ASCIIの大文字小文字を区別しない属性名の一致です。
属性値は、テキストと文字参照の混合ですが、あいまいなアンパサンドをテキストに含めることはできないという追加の制限があります。
属性は、次の4つの方法で指定できます。
空の属性構文
引用符で囲まれていない属性値の構文
単一引用符で囲まれた属性値の構文
二重引用符で囲まれた属性値の構文
ここでは、属性値のサイズの制限について言及していません。だから私は何もないはずだと思います。
ドキュメントを検証することもできます
http://dev.w3.org/html5/spec/Overview.html#embedding-custom-non-visible-dataから:
すべてのHTML要素には、任意の数のカスタムデータ属性を任意の値で指定できます。
これらのdata- *属性値の解析/処理に使用されるものには制限があります。
データ属性と値がDOMStringMapオブジェクトに配置されることがわかります。これには固有の制限はありません。
http://dev.w3.org/html5/spec/Overview.html#domstringmapから:
注:ここでのDOMStringMapインターフェースの定義は、JavaScript環境のみを対象としています。他の言語バインディングは、DOMStringMapをそれらの言語に実装する方法を定義する必要があります
DOMStringMapは、getter、setter、greator、deleterを備えたインターフェースです。セッターには、DOMString型の2つのパラメーター、名前と値があります。値は、JavaScript文字列に直接マップされるDOMString型です。
から http://bytes.com/topic/javascript/answers/92088-max-allowed-length-javascript-string:
JavaScript文字列の最大長は実装固有です。
[注:chromeはマルウェアのソースとしてbytes.comを報告しているので、注意してください]
SGMLは、65,000文字の制限セットで属性を定義します。これは、http://www.highdots.com/forums/html/length-html-attribute-175546.htmlにあり ます。
あなたがやっていることのために、あなたは大丈夫でなければなりません。上限については、jQueryがデータ属性を使用して数kのデータを個人的に保持することを確認しました。
iframe@srcdoc
(MDN(https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe)– [HTML5.2にはドキュメント全体が含まれます(ドキュメントが気に入りました(…))