Berapa lama terlalu lama untuk nilai atribut dalam HTML?
Saya menggunakan atribut data gaya HTML5 ( data-foo="bar"
) dalam aplikasi baru, dan di satu tempat akan sangat berguna untuk menyimpan data yang adil (lebih dari 100 karakter). Sementara saya menduga bahwa jumlah ini baik-baik saja, itu menimbulkan pertanyaan tentang berapa banyak yang terlalu banyak?
html
custom-data-attribute
nickf
sumber
sumber
iframe@srcdoc
( MDN (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) - [HTML5.2 yang berisi seluruh dokumen ( Saya mendengar Anda menyukai dokumen jadi (...) )Jawaban:
HTML 4
Dari perspektif HTML 4, atribut adalah konstruk SGML. Batasnya ditentukan dalam Deklarasi SGML untuk HTML 4 :
Nilai yang dipermasalahkan di sini adalah "ATTSPLEN" yang akan menjadi batas pada daftar spesifikasi atribut elemen (yang harus menjadi ukuran total semua atribut untuk elemen itu). Catatan di atas menyebutkan bahwa batas tetap harus dihindari, sehingga kemungkinan tidak ada batas nyata selain memori yang tersedia di sebagian besar implementasi.
HTML 5
HTML 5 tampaknya berbeda, seperti yang dinyatakan oleh spek , "Versi HTML ini kemudian kembali ke basis non-SGML."
Kemudian, ketika menjelaskan cara mem-parsing HTML 5, bagian berikut ini muncul ( penekanan ditambahkan):
Jadi saya kira itu jawaban Anda.
sumber
Saya baru saja menulis tes yang menempatkan string dengan panjang 10 juta ke dalam atribut dan kemudian mengambilnya lagi, dan berfungsi dengan baik (Firefox 3.5.2 & Internet Explorer 7)
50 juta membuat browser hang dengan pesan "Script ini butuh waktu lama untuk menyelesaikan".
sumber
Saya benar-benar tidak berpikir ada batasan. Saya tahu sekarang Anda bisa melakukannya
dan itu bekerja dengan baik. Meskipun sedikit tidak terbaca.
sumber
Dari sintaks HTML5 doc
Di sini belum disebutkan batas ukuran nilai atribut. Jadi saya pikir seharusnya tidak ada.
Anda juga dapat memvalidasi dokumen Anda terhadap
HTML5 Validator (Sangat Eksperimental)
sumber
Saya belum pernah mendengar adanya batasan pada panjang atribut.
Dalam spesifikasi HTML 4.01, di bagian Atribut tidak ada yang menyebutkan batasan tentang ini.
Sama di HTML 4.01 DTD - pada kenyataannya, sejauh yang saya tahu, DTD tidak memungkinkan Anda untuk menentukan panjang atribut.
Jika tidak ada tentang itu di HTML 4, saya tidak membayangkan hal seperti itu akan muncul untuk HTML 5 - dan saya sebenarnya tidak melihat batasan panjang di bagian 9.1.2.3 Atribut untuk HTML 5 juga.
sumber
Dari http://dev.w3.org/html5/spec/Overview.html#embedding-custom-non-visible-data :
Apa yang digunakan untuk mem-parsing / memproses nilai atribut data- * ini akan memiliki keterbatasan.
Ternyata data-atribut dan nilai ditempatkan di objek DOMStringMap. Ini tidak memiliki batas bawaan.
Dari http://dev.w3.org/html5/spec/Overview.html#domstringmap :
DOMStringMap adalah antarmuka dengan pengambil, penyetel, hebat dan deleter. Setter memiliki dua parameter tipe DOMString, nama dan nilai. Nilainya adalah tipe DOMString yang dipetakan langsung ke JavaScript String.
Dari
http://bytes.com/topic/javascript/answers/92088-max-allowed-length-javascript-string:
[note: chrome melaporkan bytes.com sebagai sumber malware, jadi berhati-hatilah]
sumber
SGML Mendefinisikan atribut dengan batas set 65 ribu karakter, terlihat di sini: http://www.highdots.com/forums/html/length-html-attribute-175546.html
Meskipun untuk apa yang Anda lakukan, Anda harus baik-baik saja. Adapun batas atas, saya telah melihat atribut data jQuery menggunakan beberapa k data pribadi juga.
sumber
Diuji baru-baru ini di Edge (Versi 81.0.416.58 (64 bit)), dan atribut-data tampaknya memiliki batas 64k.
sumber