Baiklah, panggil saja saya penjaga crypt di semua necro yang saya lakukan tetapi saya tidak pernah merasakan nilai sebenarnya dari ini telah dipahami dengan baik. Secara historis, telah dinyatakan bahwa "JavaScript tidak mencolok" atau, jauhkan JS Anda dari HTML melalui atribut handler event HTML inline dan tag skrip yang tidak menautkan ke file sebanyak mungkin adalah elemen kunci yang sangat besar dari:
- Masalah aksesibilitas
- SEO
- Dan peningkatan progresif
KEBOHONGAN! (Yah, sekarang mereka akan)
Kebenaran dari masalah ini adalah, Anda bisa melakukan JavaScript yang secara teknis menonjol dan masih melakukan tiga hal di atas. Kecuali Anda membangun konten HTML secara dinamis yang merupakan SEO besar tidak-tidak pada hari itu.
Tapi Berhenti dan Pikirkan ... Tentang ANDA!
Sungguh, manfaat besar, kemenangan utama dan paling tidak pasti dari mempertahankan pemisahan selalu menjadi manfaat langsung yang didapat pengembang. Anda dapat memiliki sebanyak mungkin penangan acara yang Anda inginkan pada elemen html yang sama untuk acara yang sama dengan nyaman. Itu berarti jika tag dengan class="some_class"
selalu mendapatkan perilaku tertentu tetapi juga mendapat perilaku bonus ketika berada di dalam id="bonus_behavior"
div, kita tidak harus mulai mengacaukan logika di dalam pengendali event yang diizinkan untuk melakukan percabangan untuk itu. Kami hanya dapat menambah atau tidak menambahkan penangan tergantung pada konteksnya.
Mudah Dibaca Juga
Manfaat lain adalah keterbacaan. Ini adalah masalah yang lebih kritis ketika alat peramban terdiri dari pesan kesalahan eksklusif IE yang memberitahu Anda bahwa ada sesuatu yang salah dengan [object]
IMO, itu masih masalah besar. CSS di sini, JS di sana dan HTML adalah tempat keduanya dan server bertemu. Dengan semua hal itu menyatu di satu tempat, masuk akal untuk mengandalkan pengait (ID, kelas, dan hierarki) untuk membuat lapisan abstraksi yang digunakan semuanya untuk terhubung ke HTML.
IMO, semakin Anda BISA menjaga HTML, CSS, dan JS Anda dipisahkan semakin mudah untuk tidak hanya membaca tetapi juga untuk memodifikasi dan memahami apa yang terjadi. Saya melihat div kosong dengan "dynamic_combo_box" sebagai kelas dan saya punya ide bagus, ada sesuatu yang suka pilih mewah yang memuat data secara dinamis. Saya memiliki petunjuk tentang bagaimana menemukan itu di JS dan CSS dan jika saya bertemu dengan kelas dalam masalah itu, saya akan punya ide bagus tentang apa itu dan bagaimana menemukannya di HTML.
Terlalu Mudah Membuat Lebih Licin
Dan tentu saja keterbacaan cenderung berjalan seiring dengan pemeliharaan. Ketika Anda hanya melakukan hal-hal secara langsung dengan membuang semuanya dalam tag skrip di mana HTML yang relevan berada, sesering mungkin, akan lebih mudah bagi orang untuk hanya memotong dan menempelkan skrip itu ke dalam HTML halaman lain yang sedang mereka kerjakan saat mereka menginginkan fungsi serupa yang berarti Anda sekarang memiliki satu hal yang kemungkinan besar pada akhirnya akan menjadi dua hal yang hampir sama tetapi tidak 100% mirip yang perilakunya dapat menjadi masalah seiring waktu dengan menentang harapan dan memerlukan penambahan percabangan yang lebih tidak berguna untuk menangani pengecualian yang dibutuhkan. yang lain tidak.
Jadi kecurangan perilaku terhadap kait-kait HTML itu mendorong penggunaan kembali kode dengan cara yang cerdas. Jika Anda perlu melakukan percabangan perilaku untuk implementasi alternatif, Anda hanya pergi ke fungsi yang sama dan menanganinya di sana dengan hierarki HTML atau mungkin data-att memicu beberapa perilaku alt. Ini adalah one-stop shopping bagi siapa saja yang ingin memahami bagaimana elemen-elemen UI dari tipe tertentu bekerja dan tipe-tipe cut & paste yang sangat malas akan melakukan hal yang benar / lebih dapat dipelihara hanya karena itu adalah hal termudah untuk dilakukan. lakukan sekarang dan itulah cara terbaik untuk membuat pemeliharaan terjadi. Jadikan hal "duh" termudah untuk dilakukan bahkan untuk seseorang yang tidak peduli apakah karena panik atau apatis.
Tapi Bagaimana dengan 2014?
Mungkin ini adalah poin yang sah bahwa dalam aplikasi satu halaman modern, beberapa hal yang sulit ini mungkin tidak semestinya menjadi dogmatis seperti sebelumnya, tetapi percayalah ketika saya mengatakan saya tidak berpikir saya satu-satunya yang dijual di atasnya karena pada akhirnya membuat pekerjaan lebih mudah. Saya malas dalam (saya harap) sebagian besar cara yang baik. Saya suka ketika saya hanya perlu mengubah hal-hal di satu tempat untuk mendapatkan perubahan di seluruh aplikasi, ketika saya hanya perlu mencari di satu tempat untuk mencari tahu apa bug itu, dan ketika saya memiliki waktu yang mudah memahami apa sih itu terjadi dan bagaimana cara terbaik menggunakan kembali kode itu untuk melakukan sesuatu yang sangat mirip.
Ada baiknya seperti memisahkan DB atau lapisan data yang baik. Ini akhirnya merupakan penghemat waktu mengapa-bukan-saya-hanya-melakukan-seperti menghabiskan waktu lima menit untuk mencuci malam sebelumnya daripada menghabiskan 10 menit untuk merapikan celana boxer Anda dan melakukan pemeriksaan bau paranoid keesokan paginya.
Bagi saya, motivasi egois itulah yang selalu menjadi poin utama mengapa saya berpegang pada bukan hanya JS yang tidak mengganggu tetapi juga pemisahan gaya / perilaku / isi sebanyak mungkin, bahkan seperti yang dilakukan WHAT-freaking-WG. campur aduk masalah-masalah itu dengan cara yang dimengerti luar biasa dan keren / praktis.
Sekarang semua orang melakukan SPA dan hampir konyol mencoba meyakinkan bisnis bahwa kita harus peduli dengan orang-orang yang menjalankan tanpa JS (aksesibilitas sekarang dapat, seharusnya, ditangani dengan konten yang dihasilkan JS), sepertinya generasi berikutnya dari JS dev kurang peduli tentang ini tetapi IMO, masih ada kemenangan di sana dan sebagian besar untuk Anda, pengembang menulis dan memelihara hal-hal ini. Dan sungguh, kemenangan itu seharusnya selalu menjadi titik yang paling ditekankan tetapi tidak pernah karena suatu alasan karena pada akhirnya menguntungkan Anda dan juga produk secara tidak sengaja karena kebahagiaan yang lebih mudah untuk mengubah / memodifikasi / debug.
Apakah Pernah Oke?
Yah ya, kurasa. Dalam aplikasi membuang pakai untuk kontes atau sesuatu mungkin. Tapi saya masih akan melakukannya hanya karena saya sudah terbiasa dan itu sebenarnya tidak sulit untuk dilakukan.