Saya tidak akan menjadi pendukung iblis, tetapi tidak ada hubungan yang ketat antara pekerjaan amatir dan JavaScript sebaris. Mari kita lihat kode sumber dari beberapa situs web yang paling dikenal:
- Google,
- Wikipedia,
- Microsoft,
- Adobe,
- Dell,
- IBM.
Setiap halaman beranda mereka menggunakan JavaScript sebaris. Apakah ini berarti bahwa semua perusahaan tersebut mempekerjakan orang-orang amatir untuk membuat beranda mereka?
Saya salah satu pengembang yang tidak bisa memasukkan kode JavaScript ke dalam HTML. Saya tidak pernah melakukannya di dalam proyek yang saya kerjakan (kecuali mungkin beberapa panggilan seperti <a href="javascript:...">
untuk proyek-proyek di mana JavaScript yang tidak mencolok tidak menjadi persyaratan sejak awal, dan saya selalu menghapus inline JavaScript ketika saya memperbaiki kode orang lain. Tetapi apakah itu sepadan dengan usaha ? Tidak begitu yakin.
Dari segi kinerja, Anda tidak selalu memiliki kinerja yang lebih baik saat meletakkan JavaScript di file terpisah. Biasanya, kami tergoda untuk mempertimbangkan bahwa bandwidth limbah inline JavaScript, karena tidak dapat di-cache (kecuali ketika Anda berurusan dengan HTML cacheable statis). Sebaliknya, file .js eksternal hanya dimuat satu kali.
Pada kenyataannya, ini hanyalah optimasi prematur : Anda mungkin berpikir benar bahwa mengeksternalisasi JavaScript akan mempercepat situs web Anda, tetapi Anda juga mungkin salah total:
- Bagaimana jika sebagian besar pengguna Anda datang dengan cache kosong?
- Apakah Anda menganggap bahwa dengan file .js eksternal, permintaan akan dibuat untuk file ini di setiap permintaan halaman, jika situs web tidak dikonfigurasi dengan benar (dan biasanya, tidak),
- Apakah file .js benar-benar di-cache (dengan IIS, mungkin tidak begitu mudah)?
Jadi sebelum mengoptimalkan secara prematur, kumpulkan statistik tentang pengunjung Anda, dan evaluasi kinerja dengan dan tanpa JavaScript sebaris.
Kemudian muncul argumen terakhir: Anda mencampur JavaScript dan HTML di sumber Anda, sehingga Anda payah. Tapi siapa bilang kamu mencampurkan keduanya? Kode sumber yang digunakan oleh browser tidak selalu kode sumber yang Anda tulis. Sebagai contoh, kode sumber dapat dikompresi, minified, atau beberapa CSS atau JS file dapat bergabung ke dalam satu file, tapi ini tidak berarti bahwa Anda benar-benar bernama Anda variabel a
, b
, c
... a1
, dll atau bahwa Anda menulis file CSS besar tanpa spasi atau baris baru. Dengan cara yang sama, Anda dapat dengan mudah menyuntikkan kode sumber JavaScript eksternal ke dalam HTML pada waktu kompilasi atau yang lebih baru melalui templat.
Untuk menyimpulkan, jika Anda mencampur JavaScript dan HTML dalam kode sumber yang Anda tulis, Anda harus mempertimbangkan untuk tidak melakukannya di proyek mendatang. Tetapi itu tidak berarti bahwa jika kode sumber yang dikirim ke browser berisi JavaScript sebaris, itu selalu buruk.
- Itu mungkin buruk.
- Sebaliknya mungkin itu pertanda bahwa situs web itu ditulis oleh para profesional yang peduli dengan kinerja, membuat tes khusus, dan menetapkan bahwa akan lebih cepat bagi klien mereka untuk menyejajarkan bagian-bagian JavaScript.
- Atau mungkin tidak ada artinya sama sekali.
jadi agak malu pada orang yang mengatakan "situs yang sangat keren, malu tentang skrip inline dalam kode sumber" dengan melihat sumber yang dikirim ke browser, tanpa mengetahui apa-apa tentang bagaimana situs web dilakukan.