Apakah itu praktik umum untuk meminimalkan penggunaan JavaScript saat membangun situs web? [Tutup]

32

Saya telah menjadi pengembang web selama hampir 10 tahun dan saya sudah terbiasa mencoba untuk tidak menggunakan JavaScript jika memungkinkan. Saya tidak berbicara tentang membangun aplikasi web di sini, tetapi situs web yang digerakkan oleh basis data.

Apakah ini pendekatan yang baik / dihormati?

Ryan
sumber
6
Saya menonaktifkan javascript standar dan noscript memberitahu saya dari sumber apa javscript dimuat. Tidak jarang situs web memuat javascripts dari lebih dari 10 sumber sekunder, yang pada gilirannya juga memuat javascripts dari sumber tersier. Dan tidak jarang sebuah halaman memuat javascript dari lebih dari 20 sumber eksternal total. Jadi saya akan mengatakan: meminimalkan penggunaan javascript keluar dari jendela.
Pieter B
9
Saya mengamati bahwa semakin banyak javascript yang Anda andalkan, situs Anda akan semakin tidak ramah Navigasi dan ramah SEO. Saya tidak dapat menghitung berapa banyak situs web yang saya tinggalkan karena "tautan javascript" dan semacamnya.
BiAiB
1
Saya menemukan, bahwa ada sangat banyak javascript di internetz. Masalahnya adalah: 1) pengindeks sederhana tidak mengerti js, 2) sejumlah besar js membakar CPU 3) beberapa platform masih tidak memiliki js (ponsel, tautan browser). Jadi, menghindari js ketika tidak dibutuhkan adalah praktik yang baik.
permeakra
Mengapa Pertanyaan Minggu Ini? Saya akan memilih ini tidak jelas dan tidak konstruktif. Secara umum, "haruskah saya menggunakan X?" pertanyaan tidak dihargai di situs ini. Mungkin seseorang dapat mencerahkan saya.
Mark E. Haase
Tumpukan web Microsoft (hingga sekarang dengan MVC) mengandalkan JS untuk SETIAP TOMBOL TOMBOL TUNGGU di ASP.NET dan SharePoint. Jadi tidak, itu tidak umum untuk meminimalkan penggunaan.
Graham

Jawaban:

51

Ini adalah naluri kebanyakan programmer untuk mengurangi semua jenis kode. Semakin sedikit kode, semakin sedikit kompleksitas, dan semakin sedikit poin kemungkinan kesalahan dalam kode tersebut. Aturan ini berlaku untuk Javascript sama seperti bahasa lainnya. Anda hanya menjunjung tinggi tradisi.

Gunakan Javascript sesuai kebutuhan / yang diinginkan dalam halaman HTML ... tetapi tidak ada alasan untuk menggunakannya ketika sebenarnya tidak diperlukan.

GrandmasterB
sumber
9
Menghindari JavaScript adalah masalah yang berbeda dari naluri umum untuk menghindari lebih banyak kode. Dengan JS, ini bukan hanya tentang mengurangi kompleksitas pengembangan; ada masalah nyata kompatibilitas dengan pengguna Anda.
jhocking
34

10 tahun yang lalu, itu mungkin ide yang bagus. Saat ini sebagian besar bagian internet (- setidaknya beberapa bagian yang sangat populer -) menjadi hampir tidak dapat digunakan, atau hanya menyediakan fungsionalitas yang sangat terbatas, ketika menonaktifkan Javascript di browser. Jadi IMHO hari ini Anda dapat mengharapkan pengguna Anda mengaktifkan Javascript.

Dan ada banyak kerangka kerja seperti JQuery untuk mengatasi ketidakcocokan browser. IMHO tidak ada alasan nyata hari ini mengapa Anda harus membatasi diri dengan tidak menggunakan Javascript untuk Situs Web Anda - satu-satunya alasan mungkin karena Anda tidak menggunakannya.

EDIT: pertanyaan yang berbeda adalah: Jika Anda harus memberikan fungsionalitas minimal situs web Anda ketika pengunjung Anda tidak memiliki JS diaktifkan - itu sebagian besar ide yang baik, karena alasan beberapa komentator telah menunjukkan.

EDIT2: pasti untuk setiap situs web, kita harus menemukan keseimbangan antara ramah pengguna, ramah mesin pencari dan upaya pengembangan. IMHO hari ini Javascript dapat membantu meningkatkan keseimbangan itu - jika digunakan dengan bijak. Mengatakan bahwa, saya pikir tidak perlu meminimalkan penggunaan Javascript secara umum lagi untuk menjaga keseimbangan itu. Gunakan dengan hati-hati, dan jangan menjelekkannya.

Doc Brown
sumber
17
Berikut beberapa di antaranya: SEO, agregator web, pembaca layar, NoScript, curl, browser seluler. Saya menonaktifkan skrip secara default, dan sebagian besar internet masih berfungsi dengan baik.
tdammers
7
Jika sebuah situs tidak dapat digunakan tanpa javascript maka itu tidak dapat dirayapi secara efektif oleh Google, dan itu mungkin atau mungkin tidak dapat digunakan dalam konteks yang tenang. Bahkan Facebook setidaknya dapat digunakan secara minimal tanpa javascript
GordonM
9
Saya setuju dengan sebagian besar dari apa yang dikatakan di sini, tetapi saya sangat keberatan dengan gagasan bahwa sebuah situs harus "setidaknya dapat digunakan secara minimal tanpa JavaScript". Itu salah: itu harus dapat digunakan secara maksimal tanpa JavaScript.
Jörg W Mittag
4
@ JörgWMittag jika Anda akan menonaktifkan teknologi web, Anda seharusnya tidak mengharapkan untuk mendapatkan manfaat penuh dari situs web. Skenario berbeda, tetapi jika saya membuat aplikasi web, saya mungkin tidak membuang waktu untuk membangun kompatibilitas penuh untuk sebagian kecil pengguna saya yang menolak untuk pindah ke abad ke-21. Mirip dengan bagaimana saya tidak mendukung IE 6 di sebagian besar proyek saya.
Tom Marthenal
2
Hanya profesional untuk mendukung semua kasus penggunaan. Jika Anda melewatkannya, tidak apa-apa, semua orang sesekali sesekali, tetapi mengabaikan mereka adalah masalah yang berbeda. Saya siap mengembangkan situs web 100% TANPA JS, dan setelah membuatnya berfungsi, tambahkan JS untuk merampingkan tugas dan menjadikan UX lebih baik.
Spidey
13

Memiliki situs yang dapat digunakan tanpa JavaScript berarti tersedia untuk audiens seluas mungkin. Meskipun benar bahwa sebagian besar browser mendukung JavaScript dan mayoritas pengguna membiarkannya secara default, Anda tidak dapat mengandalkan itu dengan pasti. Bagaimanapun, tidak semua yang mengakses situs Anda adalah browser; jika Anda ingin situs Anda diindeks dengan benar oleh mesin pencari seperti Google, maka GoogleBot harus dapat menavigasi situs Anda tanpa JavaScript.

Ada juga perangkat lunak perambanan web khusus di mana JavaScript tidak tersedia atau tidak berfungsi seperti yang diharapkan. Layar-membaca atau perangkat lunak Braille yang digunakan oleh tunanetra, misalnya. Ada juga lingkungan di mana memori terbatas dan memiliki javascript dalam jumlah besar dapat membuat pengalaman menjelajah tidak menyenangkan atau bahkan tidak praktis, seperti browser ponsel cerdas.

Anda harus melihat ke dalam konsep "peningkatan progresif", di mana Anda membangun situs untuk bekerja tanpa javascript, kemudian menambahkan lapisan javascript di atas untuk meningkatkan pengalaman pengguna. Dengan begitu Anda akan memiliki situs yang setidaknya dapat digunakan oleh orang-orang tanpa javascript.

Anda tidak perlu berusaha keras untuk menyediakan setiap fitur yang mungkin Anda rencanakan untuk diimplementasikan dengan JavaScript ke browser non-JavaScript, tetapi tetap penting untuk setidaknya meninggalkan case use dasar yang tersedia tanpa JavaScript. Mampu menjelajahi situs jelas merupakan daftar teratas, tetapi jika Anda membangun situs e-commerce, membuat proses checkout yang bergantung pada JavaScript akan konyol karena dapat membuat Anda kehilangan penjualan.

GordonM
sumber
4
Benar. Javascript harus digunakan sebagai bumbu, bukan hidangan utama.
hlovdal
9

Jawaban lain tampaknya berfokus pada "saya tidak pernah menggunakan JavaScript", jadi saya pikir mereka tidak mengerti. Anda seharusnya tidak menggunakan JavaScript jika Anda tidak membutuhkannya. Beberapa orang menggunakan JavaScript untuk semuanya :

  • Hover efek (harus CSS)
  • AJAX (seharusnya hrefmasuk akal)
  • Posisi (harus CSS)

Manfaatnya adalah hal-hal seperti:

  • Situs ditampilkan lebih cepat
  • CSS secara signifikan kurang kompleks daripada JavaScript sebagian besar waktu
  • Memiliki hreftautan cadangan membantu mesin pencari, pengguna yang ingin membuka tautan di tab lain, dan pengguna yang membenci JavaScript

Tentu saja, AJAX sangat keren, dan begitu juga halaman yang dinamis, jadi jangan membuangnya hanya karena beberapa orang tidak membutuhkannya.

Maksud saya adalah, belajar bagaimana melakukan sesuatu tanpa JavaScript itu baik, meminimalkan JavaScript itu baik, dan memiliki cadangan ketika JavaScript tidak berfungsi dengan baik, tetapi tidak ada alasan untuk menghindari fitur karena mereka membutuhkan JavaScript.

Pasang kembali Monica
sumber
1
Saya ingat diberi nasihat beberapa tahun yang lalu, tentang (yang pada waktu itu disebut) Man Machine Interfaces: "Hanya karena Anda bisa, tidak berarti Anda harus" Ini adalah pepatah sejumlah situs web dengan animasi mencolok yang berlebihan, suara dan sejenisnya harus mengambil on board.
Andrew
8

Merupakan ide bagus untuk menghindari fungsi yang tidak perlu, titik. Kerangka kerja seperti jQuery membuatnya sangat mudah untuk menambahkan embel-embel yang masuk akal untuk ditambahkan, tetapi terkadang tidak. Contohnya:

Apakah Anda benar-benar perlu menghidupkannya?

... atau ...

Apakah melintasi seluruh DOM benar-benar diperlukan untuk pemilih sepele seperti itu? Bisakah Anda membatasi itu menggunakan konteks, dan apakah kita memerlukannya sejak awal?

Saya tidak akan menghindari menggunakan JS, tapi saya berhati-hati untuk tidak menjengkelkan, sambil mencari mesin yang lebih lambat. Hal yang sama berlaku dengan beberapa hal baru yang mewah yang kami dapatkan di CSS3 - seperti drop shadows ... jika digunakan secara berlebihan mereka dapat membuat seseorang dengan mesin bertenaga rendah memiliki pengalaman yang sangat buruk.

Pengecualian untuk ini mungkin menulis kontrol ujung depan untuk berbagai jenis peralatan, di mana mereka harus benar-benar bekerja dengan JS dinonaktifkan (mungkin kebijakan keamanan yang ketat pada jaringan manajemen pusat data tidak menentukan JS). Jadi hal di atas harus diambil sesuai dengan persyaratan apa pun yang Anda miliki.

Pos Tim
sumber
6

Saya percaya bahwa menjadi pengembang web yang relatif baru dan muda (sekitar 4 tahun), saya harus banyak meneliti hal ini karena javascript ada di mana-mana.

Apa yang saya coba lakukan pada proyek saya adalah memastikan bahwa situs berfungsi tanpa javascript, lalu tambahkan javascript yang masuk akal (validasi sisi klien, peningkatan UI, dll). Ini adalah semacam peningkatan progresif dan menangani SEO, javascript dinonaktifkan, dan ketidakcocokan browser yang lebih lama.

Pertanyaan yang sama ini telah ditanyakan pada SO, tetapi saya tidak bisa karena cinta saya ingat di mana.

Awemo
sumber
5

Penggunaan JavaScript dapat dibatasi dalam beberapa kasus:

  • Validasi. Itu harus dilakukan di sisi server. Terkadang dalam aplikasi web ada validasi sisi klien yang cepat, tetapi itu saja tidak cukup.
  • Tugas yang sangat penting. Pengguna dapat memilih untuk menonaktifkan skrip browser mereka, sehingga kode JS tidak akan berfungsi sama sekali. Jika Anda ingin memastikan bahwa sesuatu akan berfungsi dalam hal apa pun di peramban apa pun, jangan percaya pada JS.
  • Kecepatan. Kode JS harus dikirim ke klien, dan semakin banyak kode yang Anda tulis, semakin lama. Meskipun sejumlah kecil kode tidak akan memiliki efek praktis.

JS memiliki banyak fitur, yang tidak dapat diganti dengan kode sisi server. Selain yang di atas, saya tidak berpikir akan ada argumen yang masuk akal untuk membatasi penggunaan JS.

superM
sumber
5

" Situs web yang digerakkan oleh basis data " adalah kunci jawabannya. Ada dua cara untuk membuat situs web, dan jumlah Javascript yang diizinkan tergantung pada mana yang Anda gunakan, sungguh. Anda dapat membangun:

  1. Situs web konten-sentris . Dalam kasus pertama, kata-kata ajaib adalah "peningkatan progresif"; batasi javascript untuk fungsi yang berlebihan yang dapat disediakan dengan akses klasik ke konten melalui HTTP biasa.

  2. Aplikasi web . Untuk aplikasi, Anda menggunakan web sebagai platform perangkat lunak. Aplikasi mengandalkan beberapa asumsi pada perangkat lunak yang tersedia - browser modern, versi terbaru dari perpustakaan javascript populer, akses desktop dengan mouse dan / atau tablet dengan multi-touch.

Web sebagai platform perangkat lunak

Persyaratan akses minimum OK jika Anda benar-benar membangun aplikasi - Anda menargetkan beberapa platform spesifik untuk mendapatkan fitur-fitur canggih yang tidak dapat dibangun sebaliknya. Ini seperti mengembangkan untuk Python atau Java atau .Net. Jangan biarkan kata kunci seperti HTML5 dan janji "lari ke mana saja" menipu Anda; Anda dapat memiliki kode portabel antar perangkat hanya selama seluruh platform didukung pada perangkat tersebut. Setiap perubahan pada tumpukan pengembangan, dan perangkat lunak akan rusak.

Jadi harga yang harus dibayar adalah bahwa Anda mengikuti target yang bergerak, karena versi baru platform dirilis; Anda harus mengejar ketinggalan agar aplikasi Anda tetap berfungsi saat platform berevolusi. Satu-satunya manfaat yang Anda dapatkan adalah mekanisme pengiriman semi-universal untuk aplikasi Anda yang tidak bergantung pada paket atau toko aplikasi; tetapi Anda kehilangan fitur utama yang membedakan web dari sistem komputer jaringan sebelumnya.

Web sebagai pengiriman konten

Situs web konten-sentris adalah binatang yang berbeda; mereka berada dalam tradisi World Wide Web klasik. Konten ditafsirkan secara longgar oleh klien, yang dapat melakukan transformasi apa pun yang diinginkan sebelum presentasi. Situs ini diharapkan dapat diakses oleh ekosistem berbagai platform yang mungkin atau mungkin tidak mendukung standar saat ini:

  • Perangkat seluler yang mendukung lonceng dan peluit terbaru dan termahal
  • Pengguna browser lama yang tidak bisa (di perusahaan) atau tidak tahu (di rumah) cara memperbarui
  • Versi mendatang dari mesin populer yang mencabut API lama mereka

Anda akan kehilangan semuanya jika Anda membutuhkan jenis javascript saat ini, yang selalu berkembang. Dalam konteks ini, patah javascript yang mencegah mengakses konten adalah dosa.

Semua orang yang mengatakan bahwa "penggunaan javascript harus diminimalkan" mendukung gaya ini. Tidak apa-apa untuk memasukkan beberapa JS, ingatkan Anda, tetapi semua fungsi harus berlebihan dengan akses dasar ke konten yang dapat dicapai di sisi server:

  • Validasi entri data
  • Pembaruan konten AJAX untuk navigasi tercepat (yang tetap bekerja tanpa JS)

Manfaat dari pendekatan ini adalah lebih sedikit pengujian dan peningkatan yang diperlukan, dan lebih banyak umur simpan. Halaman web statis pertama dari 20 tahun yang lalu masih dapat dijelajahi di setiap klien web, tetapi aplikasi web pertama selalu rusak. Jika situs Anda memiliki nilai pengarsipan sama sekali, dalam jangka panjang Anda akan mendapat manfaat dari menggunakan web sebagai sistem pengiriman konten, bukan platform aplikasi.

Uji Turing
sumber
3

Saya bekerja untuk pemerintah negara bagian saya, dan akibatnya sebagian besar pengembangan saya melibatkan situs web interaktif berbasis data. Pertanyaan terhadap data historis, pengiriman formulir, hal-hal seperti itu. Kami menjaga Javascript kami seminimal mungkin, untuk alasan berikut:

1) Validasi input form harus selalu terjadi di sisi server, tidak pernah di sisi klien. Jika Anda mencoba untuk memvalidasi input Anda di sisi klien, yang harus dilakukan oleh seorang peretas adalah membuat salinan lokal halaman web Anda dan menulis ulang Javascript untuk memungkinkan apa yang ingin ia kirimkan kepada Anda (injeksi SQL, dll). Validasi Anda harus dilakukan di suatu tempat di bawah kendali eksklusif Anda, yaitu di server.

2) Banyak pengguna mematikan Javascript atau menggunakan browser yang mungkin tidak menerapkannya dengan benar. Menjadi pemerintah, kita harus mendukung semua orang, bahkan jika mereka menggunakan peralatan yang SANGAT BENAR. HTML berfungsi di mana saja; Javascript, tidak banyak. Dengan tidak menggunakan Javascript di halaman web Anda, Anda memberi mereka jejak yang sangat kecil di mesin klien, menggunakan beberapa sumber daya. Ini memaksimalkan jumlah orang yang dapat mengakses konten Anda. Untuk alasan yang sama, Anda tidak boleh terlalu gila dengan CSS Anda. Tetap sederhana, tetap bersih, dan biarkan wanita-wanita tua kecil melihat situs Anda bahkan jika komputer mereka dibeli pada tahun 1999 (Kebetulan, kami memang mendapatkan panggilan dukungan teknis dari orang-orang seperti ini).

3) Javascript, menjadi alat yang disukai oleh "pengembang web" daripada programmer sisi server, cenderung sangat jelek. Dan desainer (yang biasanya adalah pengembang web, jika Anda ingin jujur ​​tentang hal itu) cenderung tidak melihat masalah dengan mengunduh "skrip" dari tempat acak di web. Mereka mengatakan hal-hal seperti "mengapa menemukan kembali kemudi?" dan "Tidak Diciptakan Di Sini". Jadi, alih-alih menulis kode mereka sendiri, mereka sering pergi keluar dan mengambil sesuatu dari situs lain, berpikir bahwa jika di internet itu adalah permainan yang adil. Ada dua masalah dengan ini: A) mereka mungkin secara tidak sengaja memposting beberapa Javascript berbahaya yang membawa Anda beberapa saat untuk menangkap, dan B) mereka mungkin bertabrakan dengan hak cipta seseorang, dan membuat Anda dituntut. Kedua situasi harus dihindari.

Secara umum, Javascript adalah ide yang buruk. Kode sisi klien dalam bentuk APAPUN adalah ide yang buruk. Sisi klien hanya boleh mengandung bahasa markup dan CSS; biarkan sisi server menangani pengangkatan berat.

Phil
sumber
2

Tergantung.

Meskipun agen pengguna desktop dapat diharapkan untuk mendukung dan menjalankan javascript Anda dengan cara yang bermakna, tidak semua agen pengguna adalah browser desktop grafis, dan Anda perlu memutuskan apakah Anda ingin memenuhi kebutuhan mereka.

Contohnya termasuk:

  • mesin pencari (Google memang menjalankan beberapa javascript, tetapi tentu saja tidak semuanya, dan jika Anda mengandalkan javascript untuk navigasi, bot pencarian mungkin tidak menemukan semua konten Anda)
  • agregator dan pencakar
  • peramban berbasis teks (tidak banyak orang yang menggunakannya)
  • pembaca layar dan alat bantu baca lainnya
  • (beberapa) browser seluler

Aturan praktis saya adalah bahwa jika itu adalah aplikasi web untuk pengguna biasa (in-house, komunitas, hal semacam itu), maka mengandalkan javascript tidak apa-apa, tetapi jika Anda ingin dapat diakses dan ditemukan secara publik, maka setidaknya yang penting fungsionalitas harus bekerja dengan sempurna tanpa javascript, dan Anda harus gagal dengan anggun saat Anda membutuhkannya, daripada menunjukkan perilaku 'tidak terdefinisi'.

tammmer
sumber
2

Pendekatan kuno benar-benar ketinggalan zaman. Sebagai contoh saya telah membuat penghapusan ajax untuk moderator di salah satu situs dan dia hanya senang karena peningkatan kecepatan yang jelas.

Tentu saja pengembang dapat melakukan dua versi untuk pengguna JS dan non-JS, tetapi dalam sebagian besar kasus itu sangat mahal dan tidak bernilai 1-2% dari pemirsa situs web (jika Anda bukan Google, tentu saja).

Jadi jawaban saya adalah TIDAK - JavaScript adalah jawaban untuk banyak pertanyaan pengalaman pengguna, mengapa saya tidak menggunakannya?

pengguna1065145
sumber
1

Dari pengalaman saya, ada saatnya perusahaan menonaktifkan JavaScript berdasarkan kebijakan. Tapi kali ini jauh sekali. Saat ini saya telah membangun beberapa aplikasi intranet besar dan aplikasi web untuk perusahaan global yang lebih besar. Untuk semua aplikasi, penggunaan JavaScript dan JQuery adalah bagian dari hal-hal yang diharapkan pelanggan.

Membangun aplikasi untuk pelanggan tidak hanya kecepatan dan keamanan lagi. Pelanggan ingin fokus pada kegunaan dan penggunaan teknologi AJAX. Tanpa menggunakan JavaScript, itu tidak akan berfungsi dengan baik. PostBacks sepanjang waktu untuk beberapa tugas yang sangat kecil seperti perhitungan atau sesuatu seperti itu untuk sebagian besar perusahaan bukan pilihan.

Ketika kita berpikir tentang situasi saat ini di perusahaan besar ada indikator lain mengapa JavaScript saat ini harus dimiliki. Lihatlah sistem CMS yang saat ini berjalan dalam bisnis. Sebagian besar dari mereka menggunakan Microsoft SharePoint atau Adobe CQ, beberapa di antaranya adalah Drupal atau lainnya dan sebagainya. Semua sistem ini bergantung pada JavaScript. Tanpa javascript sebagian besar aplikasi tidak akan berfungsi, seperti yang diharapkan pengguna.

Smokefoot
sumber
0

Di masa lalu, JavaScript digunakan dan disalahgunakan, dan skrip (dianggap) penuh dengan kerentanan, dan sumber malware.

Banyak jaringan perusahaan merespons dengan menonaktifkan JS, kebijakan yang (benar atau salah) masih ada di banyak organisasi saat ini.

Sederhananya, saya menyarankan bahwa tidak ada situs yang harus bergantung pada JS untuk beroperasi

Andrew
sumber
3
Saya pikir pendapat ini benar-benar ketinggalan zaman. Sebagian besar perusahaan menggunakan SharePoint atau CQ untuk solusi intranet. Kedua sistem benar-benar bergantung pada JS.
Smokefoot
Saya benar-benar menyangkal "sebagian besar perusahaan" menggunakan Sharepoint ... dan bahkan untuk perusahaan yang mengizinkan JS secara internal, pengaturan Intranet dapat berbeda dari eksternal.
Andrew
0

Seperti yang dijelaskan sebagian besar jawaban di sini, menggunakan javascriptitu tidak berbahaya. Jika Anda ingin menyimpan kode sumber dan kode sumber yang terlihat berantakan, cobalah coffee-scriptyang akan menghemat banyak usaha pengetikan javascript.

http://coffeescript.org/

mithilatw
sumber