Praktik berikut ini cukup umum di JavaScript sebaris yang harus saya tangani:
<script type="text/javascript">
<!--
// Code goes here
//-->
</script>
Saya tahu bahwa intinya adalah mencegah browser yang tidak kompatibel dengan JavaScript merender sumber, tetapi apakah ini masih merupakan praktik terbaik saat ini? Sebagian besar browser yang digunakan saat ini dapat menafsirkan JavaScript; bahkan perangkat seluler modern biasanya tidak mengalami masalah.
Adapun pertanyaan 'mengapa tidak?' pertanyaan: Saya baru-baru ini harus menghabiskan beberapa jam untuk men-debug masalah ketika seseorang meninggalkan '//' di depan '->' di akhir tag skrip yang terkubur jauh di dalam beberapa laman, dan ini menyebabkan JavaScript yang misterius kesalahan.
Apa yang kamu kerjakan? Apakah ini masih dianggap sebagai 'praktik terbaik'?
sumber
Jawaban:
Hal yang terpenting adalah saat ini, apakah browser tertentu mendukung JavaScript atau tidak adalah tidak relevan (jelas sebagian besar mendukungnya) - tidak relevan karena hampir semua memahami blok skrip, yang berarti mereka tahu untuk mengabaikan JavaScript meskipun mereka tidak bisa. menafsirkannya.
Matt Kruse memberikan penjelasan yang sedikit lebih rinci di situs JavaScript Toolbox-nya tentang mengapa secara khusus tidak menggunakan komentar HTML dalam blok skrip.
Dikutip dari halaman itu:
Jangan Gunakan Komentar HTML Di Blok Skrip
Di zaman kuno javascript (1995), beberapa browser seperti Netscape 1.0 tidak memiliki dukungan atau pengetahuan tentang tag skrip. Jadi, saat javascript pertama kali dirilis, diperlukan teknik untuk menyembunyikan kode dari browser lama sehingga mereka tidak akan menampilkannya sebagai teks di halaman. 'Retasan' adalah menggunakan komentar HTML di dalam blok skrip untuk menyembunyikan kode.
Menggunakan Komentar HTML Dalam Skrip Itu Buruk
Tidak ada browser yang umum digunakan saat ini yang mengabaikan tag <script>, jadi menyembunyikan sumber javascript tidak lagi diperlukan. Faktanya, itu bisa dianggap berbahaya karena alasan berikut:
sumber
Saya sudah berhenti melakukannya. Pada titik tertentu Anda hanya perlu melepaskan NCSA Mosaic Anda.
sumber
Sesuai Rekomendasi W3C , sangat berguna untuk menyembunyikan data skrip dari AGEN PENGGUNA.
Dikutip dari halaman W3c :
Skrip komentar dalam JavaScript Mesin JavaScript memungkinkan string
"<!--"
muncul di awal elemen SCRIPT, dan mengabaikan karakter lebih lanjut hingga akhir baris. JavaScript mengartikan "//" sebagai memulai komentar yang diperpanjang hingga akhir baris saat ini. Ini diperlukan untuk menyembunyikan string "->" dari parser JavaScript.sumber
Tidak, ini adalah hangover dari solusi yang digunakan saat elemen skrip pertama kali diperkenalkan. Tidak ada browser yang gagal memahami elemen skrip hari ini (meskipun browser memahaminya sebagai "Skrip yang harus diabaikan karena skrip dimatikan atau tidak didukung").
Dalam XHTML, mereka secara aktif berbahaya.
Saya menulis sesuatu tentang sejarahnya beberapa waktu yang lalu.
sumber
Berhenti menggunakan ini beberapa waktu lalu. Selain itu, menurut Douglas Crockford , Anda dapat melepaskan atribut type dari tag skrip Anda karena satu-satunya bahasa skrip yang tersedia di sebagian besar browser adalah JavaScript.
sumber
Jika Anda mengetik secara manual, saya sarankan Anda selalu menggunakan file js eksternal, itu akan sangat membantu.
Mengenai kekhawatiran Anda: sebagian besar browser saat ini aman JavaScript. Namun terkadang orang mungkin menulis parser sederhana untuk mengambil HTML secara langsung - dan saya harus mengatakan, kutipan aman sangat membantu klien tersebut. Juga beberapa klien non-JS seperti Lynx lama akan mendapatkan keuntungan dari ini.
sumber
Jika Anda tidak menyertakan teks literal di antara tag skrip- yaitu, jika Anda memuat skrip dari file src, Anda dapat melupakan komentarnya.
sumber
Saya akan merekomendasikan menggunakan bagian CDATA, seperti yang dijelaskan dalam pertanyaan ini .
sumber
Saya berhenti melakukan itu sejak lama. Anda benar-benar tidak membutuhkannya di zaman sekarang ini.
sumber
Saya tidak melakukannya tetapi beberapa hari yang lalu saya pergi untuk memvalidasi situs saya yang dilindungi kata sandi di w3c. Jadi saya harus menggunakan metode input langsung mereka. Itu mengeluh tentang javascript saya, jadi saya mengembalikan komentar di semuanya baik-baik saja.
sumber