- Dengan HTML saja, tidak ada fitur
include untuk menyertakan elemen yang sama ke banyak halaman
- CSS bisa memuat CSS, dan JavaScript bisa memuat JS, tetapi HTML tidak bisa mengambil HTML, sehingga hal ini menimbulkan pertanyaan
- Untuk mengatasi masalah ini, berbagai JavaScript, bahasa templat, dan static site generator digunakan
- Masalah kompleks seperti performa, keamanan, keterlambatan rendering, dan include melingkar menjadi hambatan penerapannya
- Banyak developer menginginkan fitur include deklaratif murni di HTML, tetapi hingga kini belum tercermin dalam standar web
Pertanyaan tentang mengapa HTML tidak memiliki fitur include
Permasalahan
- Ada ketidaknyamanan karena harus berulang kali menyisipkan header bersama di banyak halaman seperti
index.html, about.html, dan contact.html
- Developer ingin menggunakan kembali header yang didefinisikan sekali tanpa duplikasi
Metode alternatif yang sudah ada
- Cara memuat HTML eksternal dengan fetch API JavaScript lalu menyisipkannya ke DOM
- Server Side Includes (SSI),
include di PHP, static site generator, dan bahasa templat sudah tersedia sebagai solusi
- Elemen HTML seperti
<iframe> dan <object> juga memungkinkan, tetapi tidak cocok karena masalah aksesibilitas, performa, dan isolasi gaya
- Pada akhirnya, HTML sendiri tidak memiliki sintaks include yang sederhana
Mengapa HTML tidak memiliki fitur ini?
- CSS dan JS masing-masing memiliki sintaks
@import atau import, tetapi HTML tidak demikian
- Standar web umumnya telah mengakomodasi fitur yang banyak digunakan developer, tetapi HTML include belum termasuk di dalamnya
- Alasan yang diajukan dalam diskusi:
- Potensi mengganggu kerja preload scanner
- Masalah layout shift/flicker saat loading asinkron
- Kompleksitas penanganan include bertingkat atau melingkar
- Penolakan terhadap peningkatan trafik web hosting
- Isu keamanan (CORS, CSP, dll.) dan benturan timing pada event loading dokumen
- Atau mungkin sekadar karena prioritasnya rendah dan belum ada proposal yang jelas
Diskusi terkait
- Sedang dibahas secara aktif di issue thread WHATWG di GitHub #2791
- Di masa lalu, Chrome pernah memiliki HTML Imports, tetapi kemudian dihentikan seiring tidak adanya dukungan dari browser lain
- Pendekatan alternatif seperti HTMX, Web Components, XSLT, dan SSI juga dibagikan
Ringkasan reaksi komunitas
- Perkembangan HTML tetap berfokus pada markup statis, sehingga filosofi menyingkirkan fungsi yang bersifat logis masih kuat
- Banyak orang menginginkan fitur ini, tetapi kebanyakan adalah developer individu yang sulit menyuarakannya dalam proses standardisasi
- Ada juga analisis bahwa adopsinya akan sulit jika masalah performa, keamanan, pemrosesan rendering, dan pencegahan siklus tidak diselesaikan
- Sebagian developer melihat fitur ini absen hanya karena konsep bahwa HTML seharusnya hanya menangani “hasil”
Kesimpulan
- Hingga kini, HTML masih tidak memiliki fitur include murni, sehingga perlu menggantinya dengan berbagai tool dan bahasa eksternal
- Namun, banyak developer masih mengharapkan struktur reuse sederhana berbasis HTML
1 komentar
Komentar Hacker News