Saya berpikir bahwa jika semua pengguna situs web diharuskan mengaktifkan JavaScript, apakah boleh menggunakan JavaScript yang mencolok?
Saya mendukung peningkatan progresif, tetapi apa gunanya aplikasi web canggih memantul pengguna jika browser lama atau JavaScript dinonaktifkan?
Kami memiliki target audiens yang sangat tipis, dan kami dapat memberi tahu audiens target kami tentang browser dan plugin / fungsionalitas apa yang harus dimiliki. Jadi pertanyaan saya adalah, apakah mencampur JS dan HTML baik-baik saja dalam kasus itu? Suka menggunakan atribut onclick.
Jawaban:
Ini adalah keputusan bisnis daripada keputusan desain.
Ada biaya untuk menyediakan versi situs web yang berfungsi tanpa JavaScript (atau Flash, atau Silverlight). The bisnis harus memutuskan apakah hilangnya pendapatan / pengunjung layak atau tidak.
Jadi, jika biaya $ 10.000 untuk menulis versi ini (jumlahnya mungkin di sisi besar, tapi itu hanya ada untuk contoh ini) maka akankah bisnis menutup pengeluaran itu selama masa pakai situs? Jika tidak, maka jangan berikan versi itu.
Namun, jika hanya biaya $ 100 untuk menulis versi ini maka masuk akal untuk memberikan degradasi yang anggun.
Setelah mengambil keputusan bisnis untuk hanya menargetkan browser yang mengaktifkan JavaScript dan berharap bahwa pengguna Anda akan mengaktifkan JavaScript maka masuk akal untuk membuat aplikasi Anda memanfaatkan fitur-fitur yang sekarang Anda miliki. Satu-satunya hal yang perlu Anda lakukan adalah (seperti Stack Overflow itu sendiri) memasang peringatan bahwa situs tidak akan berfungsi dengan benar jika pengguna belum mengaktifkannya.
sumber
Sesuatu yang belum dibicarakan orang lain ...
99% dari situs web menyambut pengunjung tertentu, satu dengan sedikit atau tanpa JavaScript. Pengunjung itu memiliki nama: Googlebot .
Alasan besar semua orang harus peduli dengan pengunjung tunanetra, juga ...
Jika Anda salah satu dari sedikit orang yang tidak peduli sama sekali tentang lalu lintas mesin pencari, yah, itu hak prerogatif Anda — tetapi tentu saja itu tidak sesuai dengan aturan umum.
sumber
Orang yang menulis sesuatu untuk lingkungan internal tertentu adalah alasan besar mengapa IE6 masih ada.
Pikirkan tentang itu
sumber
Jika Anda melakukan situs JS only (mungkin 'aplikasi' dalam hal ini adalah kata yang lebih baik) yang disebut 'tidak mengganggu' dari JS tidak terlalu penting seperti dalam kasus ini, ketika Anda perlu menurunkan dengan anggun ke non- Versi JS.
Namun: JavaScript yang ditulis dengan cara yang tidak mencolok pada umumnya lebih mudah untuk ditulis (dan setidaknya saya menemukannya dengan cara ini) dan dipelihara. Lebih mudah untuk memperkenalkan perubahan pada tata letak HTML yang tidak merusak JS, dan mengubahnya ke JS tanpa khawatir tentang kerusakan HTML.
sumber
Jika Anda membangun situs web saya akan menjaga JavaScript tidak mengganggu. Namun, jika Anda sedang membangun beberapa bentuk aplikasi (seperti Google Docs) maka JavaScript akan sangat mengganggu.
JavaScript dan HTML5 sangat bagus untuk membangun aplikasi jika itu adalah kebutuhan Anda, tetapi itu benar-benar pilihan bisnis.
sumber
Mayoritas pengguna (pengguna saya, saya tidak tahu tentang pengguna Anda) memiliki dan mengaktifkan JavaScript. Mari kita beri para pengguna pengalaman pengguna yang luar biasa. Namun, Anda masih perlu menyediakan versi situs Anda yang berfungsi tanpa Javascript. Saya tahu ini merepotkan untuk membangun 2 versi, tetapi begitulah yang terjadi dalam pengembangan web. (Pada kenyataannya Anda mungkin harus membuat beberapa versi, yang ketiga mungkin merupakan versi seluler dari situs Anda).
Apa yang tidak ingin Anda lakukan adalah mendesain penyebut yang paling tidak umum: "Ya, ada beberapa pengguna yang menonaktifkan Javascript sehingga kami akan merancang situs kami agar berfungsi dengan baik untuk mereka - tanpa Javascript, tekan server untuk semuanya . " Ini hanya menghukum mayoritas pengguna Anda yang memiliki Javascript.
sumber
Anda menyebutkan menggunakan atribut hanya klik. Apakah Anda berencana menggunakan pengendali event JavaScript untuk navigasi halaman?
Saya akan merekomendasikan terhadap ini karena satu alasan: itu istirahat mengklik tengah .
Untuk mengklik tautan biasa, dengan asumsi JavaScript diaktifkan, ini akan secara fungsional setara:
Jika Anda mencoba mengklik tengah contoh pertama, Anda akan mendapatkan halaman kosong daripada myPage.htm.
Terlepas dari contoh ini, saya pikir tidak apa-apa menggunakan JavaScript yang mencolok jika masuk akal secara bisnis untuk Anda. Diperlukan waktu lebih sedikit untuk menulis (tetapi tidak harus mempertahankan) inline JavaScript, dan hilangnya peningkatan progresif mungkin tidak penting dalam situasi Anda.
sumber
JavaScript yang mencolok baik - baik saja 10 tahun yang lalu. Tidak apa-apa jika Anda seorang amatir, atau jika Anda sedang membangun prototipe yang dibuang, atau jika ada keadaan yang mengharuskannya, seperti ketergantungan pada kode lama atau kode yang digerakkan oleh data dan itu hanya cara biaya sederhana terlalu banyak untuk memperbaiki al
Jika Anda membangun sesuatu dari bawah ke atas, ikuti standar, tulis kode yang baik, bersih, dan dapat dikelola. Tulis sesuatu yang Anda akan banggakan dan itu tidak akan membuat Anda sakit setahun dari sekarang ketika beberapa orang bodoh meminta bantuan Anda karena mereka tidak mengerti peretasan yang Anda lakukan. Tulis sesuatu yang memastikan bahwa perancang web Anda dapat dengan mudah menukar CSS tanpa harus menggali melalui HTML dan JavaScript yang berantakan.
Bangun aplikasi sehingga memiliki ruang untuk tumbuh, sehingga setiap pengembang dapat masuk dan memeliharanya. Waktu yang diinvestasikan sekarang akan menghemat waktu di masa depan, jika bukan waktu Anda, milik orang lain.
Pastikan bahwa JavaScript dapat digunakan kembali dalam konteks lain. Pastikan bahwa mendesain ulang situs web lengkap bisa jadi itu, mendesain ulang, dan bukan membangun kembali sepenuhnya sesuatu yang sudah ada tetapi tidak dibangun dengan keras.
Bayangkan betapa memalukan itu harus menghabiskan jumlah waktu yang sama pada mendesain ulang seperti yang dilakukan untuk membangunnya pada awalnya.
Percayalah pada saya dari pengalaman, JavaScript yang tidak mencolok akan mencegah Anda membuat beberapa kesalahan mahal.
sumber
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:
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 dalamid="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.
sumber
Jika Anda tahu lingkungan operasi target Anda, Javascript dan kerangka kerja seperti jQuery dapat menjadi anugerah nyata. Misalnya dalam lingkungan Enterprise di mana BUMN memiliki Javascript dan IE8 daripada lebih aman untuk menulis aplikasi browser sisi klien intensif.
sumber
Membuat degradasi yang anggun lebih mudah hanyalah satu dari banyak faktor yang menjadikan JavaScript tidak menarik sebagai pilihan yang menarik, dan menurut saya, itu bukan yang terpenting.
Dari pengalaman pribadi, saya akan mengatakan bahwa jika Anda berbicara tentang proyek yang lebih besar, proyek yang kemungkinan besar akan berkembang seiring waktu, maka menggunakan gaya yang tidak mencolok akan membuat aplikasi BANYAK lebih mudah untuk dirawat, didebug, dan diperbarui. Ini adalah alasan terbesar mengapa kami selalu menggunakan gaya yang tidak mencolok, bahkan di situs yang meminta JavaScript diaktifkan untuk semua pengunjung.
sumber
Secara umum, jika Anda mengembangkan "situs web" tradisional yang tersedia secara anonim, diindeks oleh mesin pencari, dan di mana pendapatan dihasilkan oleh iklan, maka Anda harus memberikan degradasi yang baik. Gagasannya adalah situs semacam ini hidup dan mati dengan aksesibilitas sehingga membatasi aksesibilitas berarti kehilangan satu ton tampilan halaman dan dengan demikian pendapatan iklan.
Akses terbatas, "situs" yang umumnya tidak dapat diindeks dan tidak berbasis iklan (aplikasi web) dapat menjadi jauh lebih fleksibel. Itu datang ke keputusan antara luasnya dukungan, kedalaman fitur, dan biaya pengembangan. Anggap saja seperti mengembangkan aplikasi tradisional: platform apa yang Anda dukung dan apa spesifikasi minimumnya? Jika Anda menargetkan hanya satu platform dan spesifikasi terbatas, Anda dapat berkonsentrasi pada penyediaan produk unggulan dengan biaya pengembangan dan dukungan yang lebih sedikit, dengan biaya kehilangan pangsa pasar potensial.
Contoh: Google Search adalah situs web. Google Documents adalah aplikasi web. Pencarian Google tanpa embel-embel dan dapat berfungsi secara identik tanpa JavaScript, CSS, dan / atau gambar, dll ... - ini bekerja di browser mode teks seperti halnya di browser GUI terbaru. Google Documents tidak berfungsi dengan menonaktifkan JavaScript dan bahkan tidak menurunkan anggun - bahkan tidak peringatan untuk mengaktifkan JavaScript.
sumber
Saya lebih suka memiliki sebagian besar tata letak dan navigasi ditangani dalam CSS. Ya, Lynx mungkin tidak mendukungnya, tetapi semua browser berfitur lengkap yang saya ketahui tidak dapat mematikannya. Kemudian JavaScript dapat digunakan untuk hal-hal yang lebih mencolok tetapi tidak diperlukan. Saya juga suka Ruby on Rails untuk tujuan ini. Ini dapat melakukan banyak hal yang diperlukan JavaScript untuk melakukan sisi server selama Anda tidak memerlukan pembaruan halaman dinamis.
Lebih bertarget pada jawaban pertanyaan: Saya TIDAK SUKA membutuhkan JavaScript, tetapi ada kasus bisnis di mana diperlukan seperti yang dicatat ChrisF.
sumber
Javascript adalah standar defecto ketika datang ke segala jenis konten dinamis yang dikirimkan sisi klien, jika mereka tidak memiliki JS maka mereka mungkin tidak akan memiliki silverlight.
Maka Anda harus berpikir tentang pasar / audiens Anda apakah Anda programmer.stackexchcange atau bbc.co.uk/news? khalayak yang sangat berbeda.
sumber
Karena Anda dapat melihat-lihat web dan melihat "javascript obtrusive" di banyak situs, pertanyaan dasar Anda dijawab, ya, tidak apa-apa, dan banyak situs populer melakukannya, bahkan Google.
Namun yang lebih penting adalah penurunan fungsionalitas dengan anggun, meskipun Anda bersikeras bahwa pengguna Anda harus mengaktifkan Javascript, Anda harus memberikan tingkat pengalaman yang layak untuk pengguna non-js, atau mereka tidak akan pernah mau kembali dengan sukarela.
sumber