Mengapa orang menonaktifkan JavaScript?

59

Saya mengajukan pertanyaan kemarin Haruskah saya repot-repot Mengembangkan Untuk JavaScript Dinonaktifkan? . Saya pikir konsekuensinya adalah: Ya, saya harus mengembangkan untuk JavaScript Disabled. Sekarang saya hanya ingin mengerti mengapa pengguna menonaktifkan JS. Tampaknya banyak pengembang (saya kira orang-orang yang menjawab pertanyaan adalah pengembang) menonaktifkan JS. Mengapa demikian. Mengapa pengguna menonaktifkan JS? Untuk keamanan? Kecepatan? atau apa?

Jiew Meng
sumber
9
Saya pikir Anda membuat asumsi berdasarkan bukti anekdotal. Faktanya adalah, bahwa 99,7% pengguna tidak mematikan JS. Bahkan, jika mereka benar-benar mematikan JS, mereka tidak akan menjawab pertanyaan di sini, karena situs ini tidak berfungsi tanpa JS.
vartec
2
Saya tidak tahu siapa yang tahu.
kirk.burleson
6
@varted, @kirk: Saya tahu banyak orang yang melakukannya, atau setidaknya sebagian. Banyak orang yang sadar akan keamanan hanya akan mengizinkan JavaScript di situs yang mereka daftar putih, misalnya. Dan saya tahu banyak yang menonaktifkan JS pada ponsel cerdas mereka karena sering bernilai baterai yang terkuras.
haylem
1
Saya memiliki javascript dinonaktifkan di Chrome secara default, untuk alasan keamanan, meskipun saya mengaktifkannya untuk situs web yang sepadan. Saya benar-benar tidak suka bahwa begitu banyak situs web tidak berfungsi tanpa javascript, ada lebih banyak dan lebih banyak lagi yang tidak berfungsi sama sekali.
Czarek Tomczak
2
@HannesKarppila Mereka masih dapat menggunakan cookie lintas domain dan gambar pelacakan bug web dll. Pengguna pelacakan berfungsi dengan baik kecuali mereka menonaktifkan javascript dan cookie, dalam hal ini internet sangat tidak dapat digunakan.
NickG

Jawaban:

80

Seseorang menonaktifkan JavaScript di lingkungan browser karena pertimbangan berikut:

  • Kecepatan & Bandwidth
  • Kegunaan & Aksesibilitas
  • Dukungan Platform
  • Keamanan

Kecepatan & Bandwidth

Banyak aplikasi menggunakan terlalu banyak JavaScript untuk kebaikannya sendiri ... Apakah Anda memerlukan bagian antarmuka Anda untuk disegarkan oleh panggilan AJAX sepanjang waktu? Mungkin antarmuka Anda terasa hebat dan cepat ketika digunakan dengan koneksi broadband, tetapi ketika Anda harus menurunkan kecepatan koneksi menjadi lebih lambat, antarmuka yang lebih ramping lebih disukai. Dan mematikan JavaScript adalah cara yang baik untuk mencegah aplikasi web yang bodoh untuk menyegarkan dunia setiap 15 detik atau lebih tanpa alasan yang jelas. (Pernah melihat jumlah data yang dikirim melalui Facebook? Menakutkan. Ini bukan hanya masalah terkait JS, tetapi juga bagian dari itu).

Kami juga cenderung lebih banyak memuat dari pemrosesan ke klien, dan jika Anda menggunakan perangkat keras minimalis (atau hanya ketinggalan jaman), ini sangat lambat.

Kegunaan & Aksesibilitas

Tidak semua antarmuka pengguna harus diekspresikan secara dinamis, dan konten yang dihasilkan server mungkin bisa diterima dalam banyak kasus. Plus, beberapa orang tidak menginginkan antarmuka seperti ini. Anda tidak dapat menyenangkan semua orang, tetapi kadang-kadang Anda memiliki kesempatan untuk dan kewajiban untuk memuaskan semua pengguna Anda.

Akhirnya, beberapa pengguna memiliki cacat, dan jangan abaikan mereka !!!

Skenario terburuk di sini, menurut pendapat saya, adalah situs web pemerintah yang mencoba "memodernisasi" UI mereka agar tampak lebih ramah kepada publik, tetapi akhirnya meninggalkan sebagian besar audiens yang dituju. Demikian pula, sangat disayangkan ketika seorang mahasiswa tidak dapat mengakses konten programnya: karena dia buta dan pembaca layarnya tidak mendukung situs tersebut, atau karena situs tersebut sangat berat dan memerlukan plug-in modern ad-hoc yang dia tidak bisa menginstal pada laptop yang diperbaharui yang dibeli di e-bay 2 tahun yang lalu, atau lagi karena dia kembali ke rumah ke negara lain untuk liburan musim semi dan kendala bandwidth lokal tidak dapat mengatasi payload dari situs

Tidak semua orang hidup di dunia yang sempurna.

Dukungan Platform

Poin ini berkaitan dengan 2 yang sebelumnya dan cenderung kurang relevan saat ini, karena browser menanamkan mesin JavaScript yang tingkat besarnya lebih efisien daripada sebelumnya, dan ini terus menjadi lebih baik.

Namun, tidak ada jaminan bahwa semua pengguna Anda memiliki hak istimewa untuk menggunakan browser modern (baik karena kendala korporat - yang memaksa kami untuk mendukung browser kuno tanpa alasan yang baik, benar-benar - atau alasan lain yang mungkin atau mungkin tidak valid). Seperti yang disebutkan oleh "Matthieu M." dalam komentar, Anda harus ingat bahwa banyak orang masih menggunakan perangkat keras berkualitas rendah, dan tidak semua orang menggunakan smartphone terbaru dan paling keren. Sampai hari ini, masih ada sebagian besar orang yang menggunakan ponsel yang telah menyematkan browser dengan dukungan terbatas.

Tapi, seperti yang saya sebutkan, segalanya menjadi lebih baik di daerah ini. Tetapi Anda masih harus mengingat poin sebelumnya tentang batasan bandwidth jika Anda tetap melakukan polling secara teratur (atau pengguna Anda akan menikmati tagihan telepon yang bagus).

Itu semua sangat saling terkait.

Keamanan

Meskipun jelas Anda bisa berpikir bahwa tidak ada hal yang berbahaya yang dapat dilakukan dengan JavaScript mengingat itu berjalan di lingkungan browser, ini sama sekali tidak benar.

Anda benar-benar menyadari bahwa ketika Anda mengunjungi P.SE dan SO, Anda secara otomatis masuk jika Anda masuk ke jaringan lain, kan? Ada beberapa JS di sana. Bit itu masih tidak berbahaya, tetapi menggunakan beberapa konsep yang dapat dieksploitasi oleh beberapa situs jahat. Sangat mungkin bagi sebuah situs web untuk menggunakan JavaScript untuk mengumpulkan informasi tentang beberapa hal yang Anda lakukan (atau lakukan) selama sesi penelusuran Anda (atau yang sebelumnya jika Anda tidak menghapus data sesi Anda setiap kali Anda keluar dari browser atau menjalankan yang sekarang mode penyamaran umum / penjelajahan pribadi secara ekstensif) dan kemudian cukup unggah ke server.

Kerentanan terkini (bekerja di browser utama pada saat itu) termasuk kemampuan untuk mengumpulkan data formulir input yang disimpan (dengan mencoba kombinasi untuk Anda di halaman jahat dan merekam teks yang disarankan untuk setiap kombinasi huruf awal yang memungkinkan, mungkin memberi tahu penyerang siapa Anda , tempat Anda bekerja dan tinggal ) atau untuk mengekstrak riwayat dan kebiasaan penelusuran Anda ( Peretasan yang sangat cerdik melakukan sesuatu yang sederhana seperti menyuntikkan tautan ke DOM laman untuk mencocokkan warna tautan dan melihat apakah telah dikunjungi . Anda hanya perlu melakukan ini pada tabel yang cukup besar dari nama domain yang dikenal. Dan browser Anda semakin cepat dalam memproses JavaScript, hal semacam ini dilakukan dengan cepat.)

Plus, jangan lupa bahwa jika model keamanan browser Anda cacat, atau situs web yang Anda kunjungi tidak cukup melindungi diri dari serangan XSS, maka orang mungkin menggunakan JavaScript untuk cukup memanfaatkan sesi terbuka Anda di situs web jarak jauh.

JavaScript sebagian besar tidak berbahaya ... jika Anda menggunakannya untuk situs web tepercaya. Gmail Facebook (mungkin ... dan bahkan tidak ...). Pembaca Google. StackExchange.

Tapi ya tentu, JavaScript tidak seburuk itu, kan? Dan ada hal-hal menakutkan yang ditakuti online. Seperti berpikir Anda anonim ketika Anda benar-benar tidak banyak , seperti yang ditunjukkan oleh percobaan Panopticlick dari EFF . Yang juga sebagian dilakukan dengan menggunakan JavaScript. Anda bahkan dapat membaca alasan mereka menonaktifkan JavaScript untuk menghindari sidik jari peramban .


Semua ini dikatakan, mungkin ada situasi yang sangat baik di mana Anda tidak perlu repot-repot mendukung JavaScript. Tetapi jika Anda menawarkan situs web layanan publik, pertimbangkan untuk menerima kedua jenis klien. Secara pribadi, saya pikir banyak aplikasi web dan situs web modern akan berfungsi sama baiknya dengan menggunakan model konten yang dihasilkan server tanpa JavaScript sama sekali di sisi klien, dan itu akan tetap bagus dan mungkin jauh lebih sedikit memakan.

Jarak tempuh Anda dapat bervariasi tergantung pada proyek Anda.

haylem
sumber
5
Facebook, misalnya, sangat menguras CPU Anda. Saya telah menemukan beberapa situs yang kodenya sangat buruk (atau sepertinya), mereka pada dasarnya akan membekukan komputer saya dengan memuat CPU secara penuh (dengan beberapa tab lain terbuka).
Markus
3
@ Mark C: Saya menganggap mengirim kembali sebanyak 140 ribu untuk mengklik "kirim" ketika saya mengetik komentar penggunaan formulir web yang sedikit berlebihan, jujur. Mungkin dalam kasus-kasus tertentu pada saat itu dan yang telah diperbaiki sejak saat itu (semoga). Saya tinggal sebentar di negara dengan sikap hmmm yang membatasi sensor internet dan kualitas koneksi yang tidak begitu baik, dan itu membuat Anda lebih menghargai situs web berbasis teks yang bagus!
haylem
8
+1 untuk menyebutkan aksesibilitas. Setengah dari web terkutuk itu benar-benar tidak dapat digunakan untuk saya, dan saya bukan pengguna komputer biasa atau saya harus bergantung pada JAWS (belum).
Stan Rogers
2
@Stan Rogers: itu sangat berarti bagi saya. Saya memiliki kesempatan untuk bekerja dengan seorang pria buta di universitas, yang kebetulan adalah siswa dan guru, dan saya terpesona oleh kemampuannya. Dan saya merasa agak sedih bahwa perusahaan besar dan bahkan lembaga pendidikan sekarang datang dengan situs web yang jelek dan artistik di mana para pengguna ini ditinggalkan.
haylem
2
+1 untuk aksesibilitas. Saya bekerja untuk situs yang sangat terkait dengan perawatan kesehatan. (Syukurlah bukan yang buruk dalam berita). Sebanyak manfaat yang diberikan JS kepada kami, saya sangat sedih dengan prioritas kami.
Katana314
46

Karena memercayai seseorang untuk menulis komik lucu setiap pagi dan memercayai seseorang untuk menjalankan kode lengkap Turing di komputer saya adalah dua hal yang sangat berbeda.

Jörg W Mittag
sumber
3
+1 untuk analogi lucu. Padahal fakta bahwa itu Turing lengkap tidak ada hubungannya dengan bahaya eksekusi.
haylem
4
@haylem: Menjadi Turing-complete berarti tidak mungkin untuk membuktikan secara mekanis aman dalam kasus umum. Heck, bahkan tidak mungkin untuk membuktikan hal-hal dasar seperti itu tidak berjalan selamanya. Untuk bahasa yang lebih ketat, peramban klien dapat membuktikan bahwa skrip tidak melakukan sesuatu yang berbahaya.
Jörg W Mittag
22
Kelengkapan Turing hanya tentang komputabilitas. Ia mengatakan apa-apa tentang apakah bahasa yang ditafsirkan diizinkan untuk membuka file, membuat permintaan HTTP, dll. Satu-satunya bahaya yang melekat di Turing-kelengkapan adalah kemungkinan loop tak terbatas.
dan04
@ dan04 Atau ia mencoba untuk meniru prosesor x86 yang menjalankan Windows menjalankan aplikasi Desktop yang diproyeksikan ke jendela browser Anda - semua dalam Javascript. Turing kelengkapannya menakutkan
sinni800
@ dan04 dan sekarang cryptocoin mining botnet (yang hanya membutuhkan sumber daya komputasi, dan kemampuan untuk mengirim hasil kembali).
user253751
16

Saya bukan pengembang web, dan saya hanya memiliki pemahaman moderat tentang cara kerja internet. Jadi ini adalah jawaban dari pengguna .

Pengalaman saya membuat saya percaya bahwa banyak situs memiliki kode yang buruk, entah karena malas atau tidak tahu: Ketika saya melihat halaman web yang pada dasarnya statis , seperti halaman Facebook, penggunaan CPU saya akan meningkat sekitar 15%, dan lebih drastis. dengan banyak tab. Akhirnya sampai pada titik di mana saya harus menunggu jawaban setelah mengklik tombol atau tautan dan CPU saya akan terlalu panas dan terkunci.

Pada banyak pelaku (situs) terburuk ini, tidak ada yang terlihat yang berubah dan tidak ada yang interaktif yang terjadi. Saya hanya bisa mengira kode situs terus-menerus membuat penyegaran, jajak pendapat, dan loop yang tak ada habisnya.

Ini mendorong saya untuk menginstal NoScript untuk membebaskan penggunaan CPU saya dan berhenti menjelajah dari tugas yang membuat frustrasi.

Add-on indah lainnya yang saya gunakan adalah FlashBlock .

Markus C
sumber
Facebook tidak menyediakan halaman statis: itu menggunakan teknik yang disebut polling panjang untuk memeriksa pemberitahuan baru, pesan IM, dan item umpan berita. Semua hal itu membutuhkan JavaScript dan sejumlah daya CPU.
2
@ MarkTrapp Ya, itu sebabnya saya mengatakan "pada dasarnya statis" meskipun tidak sepenuhnya berbicara halaman statis. HyperPhysics akan menjadi contoh situs dengan halaman statis. Saya menyadari mungkin ada kebutuhan untuk melakukan hal semacam itu kalau tidak kotak tidak akan pernah hilang dan Anda tidak akan melihat pemberitahuan sampai Anda me-refresh halaman, tetapi : Tampaknya setiap situs membantu dirinya sendiri untuk lebih banyak sumber daya Anda daripada seharusnya, mirip dengan situasi di mana seorang profesor atau guru mengharapkan Anda untuk mengutamakan pekerjaan mereka.
Mark C
jika Anda berpikir bahwa facebook adalah halaman statis, maka Anda seharusnya tidak mengomentari pertanyaan ini.
Dainius
@Dainius Anda sepertinya membingungkan jargon dengan bahasa Inggris, dan tidak mengikuti logika di sini. Apa yang dilakukannya dengan semua siklus CPU di sini? Itulah masalahnya. Mungkin sekarang lebih baik, tetapi banyak situs web ini membantu diri mereka sendiri untuk mengurangi waktu CPU Anda.
Mark C
Mark, Anda menyebut diri Anda webdev dan bertanya, apa hubungannya halaman dinamis vs dinamis dengan siklus cpu? atau Anda benar-benar berpikir bahwa "melihat halaman web yang pada dasarnya statis, seperti halaman Facebook" itu benar?
Dainius
10

Saya menonaktifkan JS karena alasan kecepatan. TechCrunch tanpa JavaScript membutuhkan beberapa detik untuk memuat dengan cache yang sudah disiapkan. Dengan JavaScript dibutuhkan hampir 20 detik, lebih banyak jika cache tidak dipersiapkan.

Banyak situs telah membengkak dengan JavaScript, terutama galeri gambar dan situs perdagangan. Menghapus ini memberi Anda pengalaman menjelajah yang lebih baik dalam banyak kasus.

Josh K.
sumber
8

Bagi saya itu semua tentang keamanan. Saya menggunakan noscript untuk memungkinkan situs web tertentu untuk menjalankan javascript, sementara melarang sebagian besar.

Pada akhirnya Anda benar-benar tidak pernah tahu di mana bahaya itu berada ( situs web nobel terinfeksi di techspot.com ). Banyak eksploitasi nol hari (dan lainnya) menggunakan javascipt; menutup jalan serangan ini terasa seperti langkah ke arah yang benar.

kasterma
sumber
1
Anda perlu tanda kurung di sekitar sesuatu agar tautan itu bisa masuk. Itu mengingatkan saya, saya baru tahu musim dingin yang lalu bahwa Yahoo! Iklan olahraga terinfeksi dengan beberapa jenis malware (atau akan menginfeksi Anda). Lelaki muda yang mengelola jaringan rumah tempat kami menginap memasukkan daftar hitam ke banyak situs yang memiliki iklan infeksius.
Markus
7

Alasan utama saya adalah bahwa ia menekan iklan yang paling menjengkelkan. Saya lebih suka tidak menggunakan AdBlock Plus, karena itu dapat mempengaruhi pendapatan untuk situs yang saya kunjungi (dan saya telah menggunakan satu atau dua situs di mana ketentuan layanan mengatakan saya tidak menonaktifkan iklan). NoScript membatasi kemungkinan penyangkalan iklan, dan saya bersedia hidup bersama yang lainnya.

Ada juga pertimbangan keamanan, dan itu sebagian besar terkait dengan iklan juga, karena setiap situs yang menjual iklan harus dianggap berpotensi bermusuhan.

Selain itu, saya tidak perlu tahu situs itu cerdik sebelum saya mengunjunginya. Beberapa orang senang mengirimkan tautan ke situs, dan tidak selalu jujur.

David Thornley
sumber
Situs tepercaya juga dapat menyertakan Javascripts berbahaya - melalui XSS atau karena diretas. Contoh situs hadiah-Nobel muncul di benak saya.
Mnementh
4

Karena browser dulu memiliki implementasi JavaScript yang lambat dan terlalu banyak perancang web n00b hanya menggunakannya untuk hal-hal yang tidak relevan seperti rollover tombol.

Pada mesin yang cepat, dengan peramban modern, tidak ada orang waras yang menonaktifkannya sepanjang waktu. Yang tidak berarti tidak ada banyak orang yang sangat "sadar keamanan" dan orang lain tanpa dana, keinginan, atau pengetahuan untuk menjalankan browser modern di komputer yang cepat ... Hanya baru-baru ini IE6 berhenti menjadi browser paling populer di internet!

Kevin Cantu
sumber
"dan lainnya tanpa dana, keinginan, atau pengetahuan untuk menjalankan browser modern di komputer yang cepat". Saya dapat memahami dan menyetujui bagian "dana". Saya dapat memahami dengan bagian "keinginan", meskipun saya pikir biasanya akan lebih merupakan masalah "kebutuhan" sebagai kendala yang dipaksakan bahwa penolakan untuk memiliki komputer yang layak. Tapi saya tidak benar-benar mendapatkan bagian "tahu-bagaimana". Bagaimana Anda bisa tidak terampil sampai tidak membeli komputer baru-baru ini? Atau jika Anda melakukannya, menyalahgunakannya hingga tidak menginstal peramban yang dibundel dan menggunakan peramban yang lebih lama? :)
haylem
2

Dengan Javascript diaktifkan, situs web apa pun dapat menjalankan kode di Komputer saya. Saya bahkan tidak tahu, apakah situs web tersebut mengeksekusi kode dan apa fungsinya. Lebih parah lagi, orang lain dapat memasukkan kode tanpa sepengetahuan saya ke situs web yang biasanya tidak berbahaya (XSS). Baru-baru ini seorang komputer-magazin terkenal dari Jerman tidak membuat artikel, ketika seorang anak berusia 16 tahun mencoba situs perbankan online dari bank-bank paling umum di Jerman. Banyak dari mereka - termasuk yang terbesar - rentan terhadap XSS. Dan Anda bahkan tidak melihat, bahwa situs perbankan online Anda mengeksekusi beberapa Javascript yang berubah, misalnya target dan jumlah untuk transaksi. Dengan menonaktifkan Javascript serangan-XSS dalam konteks situs tepercaya tidak berguna, saya tidak menjalankan kode berbahaya.

Mnementh
sumber