Quanto tempo é longo demais para um valor de atributo em HTML?
Estou usando atributos de dados no estilo HTML5 ( data-foo="bar"
) em um novo aplicativo e, em um lugar, seria realmente útil armazenar uma boa quantidade de dados (mais de 100 caracteres). Embora eu suspeite que esse valor seja bom, isso levanta a questão de quanto é demais?
html
custom-data-attribute
nickf
fonte
fonte
iframe@srcdoc
( MDN (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) - [HTML5.2, que contém um documento inteiro ( Ouvi dizer que você gostou de documentos, então (…) )Respostas:
HTML 4
Da perspectiva do HTML 4, os atributos são uma construção SGML. Seus limites estão definidos na Declaração SGML do HTML 4 :
O valor em questão aqui é "ATTSPLEN", que seria o limite na lista de especificação de atributos de um elemento (que deve ser o tamanho total de todos os atributos para esse elemento). A observação acima menciona que os limites fixos devem ser evitados, no entanto, portanto, é provável que não exista outro limite real além da memória disponível na maioria das implementações.
HTML 5
O HTML 5 parece ser diferente, como diz a especificação : "Esta versão do HTML retorna, portanto, a uma base não-SGML".
Posteriormente, ao descrever como analisar o HTML 5, a seguinte passagem aparece ( ênfase adicionada):
Então, suponho que essa seja sua resposta.
fonte
Acabei de escrever um teste que coloca uma sequência de 10 milhões de caracteres em um atributo e o recupera novamente, e funciona bem (Firefox 3.5.2 e Internet Explorer 7)
50 milhões fazem o navegador travar com a mensagem "Este script está demorando muito para ser concluído".
fonte
Realmente não acho que exista um limite. Eu sei agora que você pode fazer
e funciona bem. Embora um pouco ilegível.
fonte
Do documento de sintaxe HTML5
Aqui não mencionou um limite no tamanho do valor do atributo. Então eu acho que não deveria haver nenhum.
Você também pode validar seu documento com relação ao
Validador HTML5 (altamente experimental)
fonte
Eu nunca ouvi falar de qualquer limite no tamanho dos atributos.
Nas especificações do HTML 4.01, na seção Atributos, não há nada que mencione qualquer limitação.
O mesmo no DTD do HTML 4.01 - de fato, até onde eu sei, o DTD não permite que você especifique um comprimento para os atributos.
Se não há nada sobre isso no HTML 4, não imagino que algo assim apareça no HTML 5 - e na verdade não vejo nenhuma limitação de comprimento na seção 9.1.2.3 Atributos para o HTML 5.
fonte
Em http://dev.w3.org/html5/spec/Overview.html#embedding-custom-non-visible-data :
O que é usado para analisar / processar esses dados- * valores de atributos terá limitações.
Acontece que os atributos e os dados dos dados são colocados em um objeto DOMStringMap. Isso não tem limites inerentes.
Em http://dev.w3.org/html5/spec/Overview.html#domstringmap :
DOMStringMap é uma interface com um getter, setter, greator e deleter. O setter possui dois parâmetros do tipo DOMString, nome e valor. O valor é do tipo DOMString que é mapeado diretamente para uma String JavaScript.
De
http://bytes.com/topic/javascript/answers/92088-max-allowed-length-javascript-string:
[nota: o chrome está relatando bytes.com como uma fonte de malware, portanto, cuidado]
fonte
O SGML define atributos com um conjunto de limites de 65 mil caracteres, visto aqui: http://www.highdots.com/forums/html/length-html-attribute-175546.html
Embora pelo que você esteja fazendo, você esteja bem. Quanto aos limites superiores, eu já vi o jQuery usar atributos de dados com alguns k de dados pessoalmente.
fonte
Testado recentemente no Edge (versão 81.0.416.58 (64 bits)), e os atributos de dados parecem ter um limite de 64k.
fonte