Wie lang ist ein Attributwert in HTML zu lang?
Ich verwende Datenattribute ( data-foo="bar"
) im HTML5-Stil in einer neuen Anwendung, und an einer Stelle wäre es sehr praktisch, eine ganze Menge Daten (über 100 Zeichen) zu speichern. Ich vermute zwar, dass dieser Betrag in Ordnung ist, wirft aber die Frage auf, wie viel zu viel ist.
html
custom-data-attribute
nickf
quelle
quelle
iframe@srcdoc
( MDN (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) - [HTML5.2, das ein ganzes Dokument enthält ( Ich habe gehört, Sie mochten Dokumente so (…) )Antworten:
HTML 4
Aus HTML 4-Sicht sind Attribute ein SGML-Konstrukt. Ihre Grenzen sind in der SGML-Deklaration von HTML 4 definiert :
Der hier fragliche Wert ist "ATTSPLEN", was die Grenze für die Attributspezifikationsliste eines Elements darstellt (dies sollte die Gesamtgröße aller Attribute für dieses Element sein). In der obigen Anmerkung wird jedoch erwähnt, dass feste Grenzwerte vermieden werden sollten, sodass es in den meisten Implementierungen wahrscheinlich keinen anderen realen Grenzwert als den verfügbaren Speicher gibt.
HTML 5
HTML 5 scheint anders zu sein, wie in der Spezifikation angegeben : "Diese Version von HTML kehrt somit zu einer Nicht-SGML-Basis zurück."
Später, wenn beschrieben wird, wie HTML 5 analysiert wird, erscheint die folgende Passage ( Hervorhebung hinzugefügt):
Ich nehme an, das ist deine Antwort.
quelle
Ich habe gerade einen Test geschrieben, bei dem eine Zeichenfolge mit einer Länge von 10 Millionen in ein Attribut eingefügt und dann erneut abgerufen wird. Es funktioniert einwandfrei (Firefox 3.5.2 und Internet Explorer 7).
Bei 50 Millionen hängt der Browser mit der Meldung "Die Fertigstellung dieses Skripts dauert lange".
quelle
Ich glaube wirklich nicht, dass es Grenzen gibt. Ich weiß jetzt, dass du es kannst
und es funktioniert gut. Wenn auch etwas unlesbar.
quelle
Aus dem HTML5-Syntaxdokument
Hier wurde keine Begrenzung der Größe des Attributwerts erwähnt. Also ich denke es sollte keine geben.
Sie können Ihr Dokument auch anhand der überprüfen
HTML5-Validator (sehr experimentell)
quelle
Ich habe noch nie von einer Begrenzung der Länge von Attributen gehört.
In den HTML 4.01-Spezifikationen gibt es im Abschnitt über Attribute keine Einschränkung.
Gleiches gilt für die HTML 4.01-DTD. Soweit ich weiß, können Sie in der DTD keine Länge für Attribute angeben.
Wenn es in HTML 4 nichts darüber gibt, kann ich mir nicht vorstellen, dass so etwas für HTML 5 angezeigt wird - und ich sehe auch keine Längenbeschränkung im Abschnitt 9.1.2.3 Attribute für HTML 5.
quelle
Von http://dev.w3.org/html5/spec/Overview.html#embedding-custom-non-visible-data :
Das, was zum Parsen / Verarbeiten dieser Daten- * Attributwerte verwendet wird, unterliegt Einschränkungen.
Es stellt sich heraus, dass die Datenattribute und Werte in einem DOMStringMap-Objekt platziert sind. Dies hat keine inhärenten Grenzen.
Von http://dev.w3.org/html5/spec/Overview.html#domstringmap :
DOMStringMap ist eine Schnittstelle mit einem Getter, Setter, Greator und Deleter. Der Setter verfügt über zwei Parameter vom Typ DOMString, Name und Wert. Der Wert ist vom Typ DOMString, der direkt einem JavaScript-String zugeordnet ist.
Von
http://bytes.com/topic/javascript/answers/92088-max-allowed-length-javascript-string:
[Hinweis: Chrome meldet bytes.com als Quelle für Malware.
quelle
Die SGML definiert Attribute mit einem Grenzwertsatz von 65.000 Zeichen (siehe hier: http://www.highdots.com/forums/html/length-html-attribute-175546.html)
Obwohl für das, was Sie tun, sollte es Ihnen gut gehen. Was die Obergrenzen angeht, habe ich gesehen, dass jQuery-Datenattribute auch einige k Daten persönlich enthalten.
quelle
Kürzlich in Edge (Version 81.0.416.58 (64 Bit)) getestet, und Datenattribute scheinen ein Limit von 64 KB zu haben.
quelle