7 bug browser kronis yang mengganggu web

Browser web luar biasa. Jika bukan karena browser, kami tidak akan dapat terhubung dengan baik dengan pengguna dan pelanggan dengan menuangkan data dan dokumen kami ke desktop, tablet, dan telepon mereka. Sayangnya, semua konten luar biasa yang disajikan oleh browser web membuat kami jauh lebih frustrasi ketika rendering tidak seelegan atau bebas bug seperti yang kami inginkan.

Dalam hal mengembangkan situs web, kita bergantung pada peramban seperti halnya kita berhutang budi padanya. Kesalahan apa pun pada platform apa pun akan terlihat, terutama saat itu merusak mesin pengguna kami. Dan dengan desain premium untuk menonjol atau pas, setiap garis tebal atau sentuhan warna yang salah diterapkan menghancurkan pengalaman estetika yang telah kami coba ciptakan. Bahkan kesalahan terkecil, seperti menambahkan piksel ekstra ke lebar garis atau sedikit meluruskan tabel, dapat mengakibatkan pengalaman pengguna yang membuat frustrasi, belum lagi biaya untuk menemukan, memeriksa, dan mengatasinya.

Tentu saja, dulu lebih buruk. Perbedaan besar antara browser sebagian besar telah terhapus dengan kepatuhan pada standar web W3C. Dan perbedaan yang tetap ada umumnya dapat diabaikan, berkat perkembangan perpustakaan seperti jQuery, yang tidak hanya membuat peretasan JavaScript lebih mudah tetapi juga menjelaskan cara-cara peramban tidak sama.

Pustaka ini memiliki kebiasaan membekukan bug browser. Jika perusahaan browser memperbaiki beberapa bug terburuk mereka, "perbaikan" baru dapat mengganggu patch lama dan penyelesaian masalah. Tiba-tiba "perbaikan" menjadi masalah yang mengganggu stabilitas lama yang telah kita selesaikan di sekitar bug. Pemrogram tidak bisa menang.

Stabilitas yang dibawa oleh pustaka seperti jQuery juga telah mendorong pembuat browser untuk mempercepat dan mengotomatiskan proses pembaruan browser mereka. Mozilla berkomitmen untuk meluncurkan versi baru Firefox setiap beberapa bulan. Di masa lalu, setiap versi akan menjadi target stabil untuk pengembang web, dan kami dapat memasang GIF kecil di situs kami yang mengklaim bahwa versi tersebut berfungsi paling baik, katakanlah, IE5. Sekarang odometer berubah sangat cepat sehingga versi baru Firefox akan dirilis dalam waktu yang dibutuhkan HTML untuk berpindah dari server ke klien.

Sementara itu, kami meminta browser untuk melakukan lebih banyak lagi. Situs web surat kabar lokal saya membuat mesin saya bertekuk lutut - meluaskan iklan popover, cuplikan video yang diputar otomatis, kode untuk menyesuaikan iklan dengan riwayat penjelajahan saya baru-baru ini. Jika putri saya melihat situs web boneka, JavaScript dengan panik mencoba menemukan iklan boneka untuk ditampilkan kepada saya. Semua sihir ini mengacaukan CPU.

Semua ini berarti bahwa bug browser saat ini lebih jarang tetapi lebih sulit untuk dijabarkan. Berikut ini sekilas genre terbaru dari bug browser yang mengganggu - atau dalam banyak kasus, mengganggu - desainer dan pengembang web.

Tata Letak

Bug browser yang paling terlihat adalah gangguan tata letak. Basis data Bugzilla Mozilla memiliki 10 bagian untuk masalah tata letak, dan itu tidak termasuk masalah tata letak yang dikategorikan sebagai terkait dengan DOM, CSS, atau Canvas. Pekerjaan browser yang paling penting adalah mengatur teks dan gambar, dan sering kali sulit melakukannya dengan benar.

Banyak bug tata letak yang tampak kecil hingga hampir bersifat esoteris. Bug bugzilla 1303580, misalnya, memanggil Firefox untuk menggunakan versi miring dari sebuah font ketika tag CSS memanggil untuk miring. Mungkin hanya seorang pecandu font yang akan menyadarinya. Sementara itu Bugzilla bug 1296269 melaporkan bahwa bagian dari surat-surat di Comic Sans terpotong, setidaknya di Windows. Desainer font membuat perbedaan, dan itu penting bagi mereka. Ketika mereka tidak bisa mendapatkan tampilan dan nuansa yang benar-benar tepat di semua browser, perancang web mungkin bisa menjadi terlalu frustrasi.

Ada ratusan, ribuan, bahkan mungkin jutaan bug ini. Di, kami mengalami masalah dengan hilangnya gambar di editor CMS dan tag span yang hanya muncul di DOM.

Kebocoran memori

Seringkali sulit untuk memperhatikan kebocoran memori. Menurut definisi, mereka tidak mengubah properti apa pun yang terlihat. Situs web dirender dengan benar, tetapi browser tidak membersihkan setelah fakta. Terlalu banyak perjalanan ke situs web yang memicu kebocoran dan mesin Anda melambat untuk merayapi karena semua RAM terkunci menahan struktur data yang tidak akan pernah digunakan kembali. Dengan demikian, OS dengan panik menukar blok memori virtual ke disk dan Anda menghabiskan waktu menunggu. Pilihan terbaik adalah me-reboot mesin Anda.

Detail bug kebocoran memori bisa jadi sangat misterius, dan kami beruntung karena beberapa programmer meluangkan waktu untuk memperbaikinya. Pertimbangkan masalah 640578 dari tumpukan browser Chronium. Mengubah bagian DOM dengan mengutak-atik innerHTMLproperti akan membocorkan memori. Sepotong contoh kode dengan panggilan loop berulang yang ketat requestAnimationFrameakan menduplikasi masalah. Ada lusinan masalah seperti ini.

Tentu saja, ini tidak selalu merupakan kesalahan browser. Masalah Chromium 640922, misalnya, juga merinci kebocoran memori dan memberikan contoh. Analisis lebih lanjut, meskipun, menunjukkan bahwa kode contoh membuat Date()objek di sepanjang jalan untuk menguji waktu, dan mungkin itu sumber masalahnya.

Flash

Ini cukup resmi. Semua orang telah melupakan tentang karya seni anti-alias dan video web yang mengagumkan yang dibawa Adobe Flash ke web. Kami malah menyalahkannya atas semua crash yang mungkin atau mungkin bukan kesalahannya. Sekarang secara resmi pensiun, tetapi tidak berjalan cepat. Bahkan beberapa perusahaan yang berpikiran maju mendorong standar web masih memiliki kode Flash di halaman mereka. Saya terkejut betapa seringnya saya menemukan kode Flash di luar situs MySpace dan GeoCities.

Sentuhan dan klik

Tidak mudah untuk menyulap berbagai jenis input, terutama sekarang tablet dan ponsel menghasilkan sentuhan yang mungkin atau mungkin tidak bertindak seperti klik mouse. Maka tidak mengherankan jika menemukan banyak bug di area ini. Kerangka kerja Bootstrap JavaScript menyimpan daftar hit dari bug yang paling menyebalkan, dan beberapa yang terburuk dalam kategori ini.

Safari, misalnya, terkadang kehilangan ketukan jari pada teks di tag (151933). Terkadang menu tidak berfungsi di iPad karena browser telah menggeser persegi panjang untuk mencari input (150079). Terkadang klik memicu goyangan aneh pada item - yang bahkan mungkin terlihat seperti sengaja dilakukan oleh seorang desainer yang edgy (158276). Semua ini menyebabkan kebingungan ketika teks atau gambar di layar tidak bereaksi seperti yang kita harapkan.

Video

Rencananya selalu untuk menyederhanakan pengiriman audio dan video dengan memindahkan tanggung jawab di dalam browser dan keluar dari dunia plugin. Ini telah menghilangkan masalah antarmuka, tetapi tidak menghilangkan semua masalah. Daftar bug video panjang, dan banyak di antaranya terlalu terlihat. Entri Bugzilla 754753 menjelaskan “sebagian besar bercak merah dan hijau yang berisi berbagai gambar hantu”, dan entri Bugzilla 1302991 “'gagap' karena tidak ada kata yang lebih baik.”

Beberapa masalah paling kompleks muncul saat browser mengintegrasikan berbagai mekanisme enkripsi yang dirancang untuk mencegah pembajakan. Bug 1304899 menunjukkan bahwa Firefox tidak secara otomatis mengunduh mekanisme enkripsi yang benar (EME) dari Adobe. Apakah ini salah Firefox? Adobe? Atau mungkin proxy yang aneh?

Bug video akan terus mendominasi. Mengintegrasikan video web dengan bentuk konten lain dengan menambahkan tag video ke HTML5 telah membuka banyak kemungkinan baru bagi desainer, tetapi setiap kemungkinan baru berarti peluang baru untuk munculnya bug dan ketidakkonsistenan.

Melayang

Kemampuan halaman web untuk mengikuti gerakan mouse di seluruh halaman membantu desainer web memberikan petunjuk kepada pengguna tentang fitur apa yang mungkin tersembunyi di balik gambar atau kata. Sayangnya, peristiwa melayang tidak selalu naik ke rantai secepat mungkin.

Browser Microsoft Edge baru, misalnya, tidak menyembunyikan kursor saat mouse melayang di atas beberapa item input (817822). Terkadang melayang tidak berhenti (5381673). Terkadang peristiwa hover ditautkan ke item yang salah (7787318). Semua ini menyebabkan kebingungan dan menghalangi penggunaan efek yang cukup rapi.

Malware

Meskipun tergoda untuk menyalahkan semua bug browser pada pengembang browser, itu seringkali tidak adil. Banyak masalah yang disebabkan oleh malware yang dirancang sebagai ekstensi atau plugin yang berguna. Dalam banyak kasus, malware melakukan sesuatu yang benar-benar berguna sambil secara diam-diam mencuri klik atau perdagangan di latar belakang.

Masalahnya adalah antarmuka ekstensi cukup kuat. Ekstensi dapat memasukkan tag dan kode arbitrer ke semua situs web. Di tangan kanan, ini sangat keren, tetapi mudah untuk melihat bagaimana kode baru dari ekstensi dapat bertemu dengan kode dari situs web. Apa? Anda tidak ingin mendefinisikan ulang perilaku $fungsi?

Ini bukan bug, melainkan masalah filosofis yang dalam dengan fitur yang sangat keren. Tetapi dengan kekuatan yang besar datang tanggung jawab yang besar - mungkin lebih besar dari yang dapat dikumpulkan oleh programmer ekstensi manapun. Cara terbaik untuk melihat masalah ini adalah dengan menyadari bahwa ini adalah satu area di mana kami, pengguna, memiliki kendali. Kami dapat mematikan ekstensi dan membatasinya hanya untuk beberapa situs web di mana tidak ada masalah. API ini agak terlalu kuat untuk penggunaan sehari-hari - begitu kuat sehingga menggoda untuk menyebut ekstensi API sebagai bug terbesar dari semuanya. Tapi itu akan menyangkal semua yang dilakukannya untuk kita.

Artikel terkait

  • Di luar jQuery: Panduan ahli untuk kerangka JavaScript
  • Review: 7 JavaScript IDE telah diuji
  • Adu penalti HTML5: Bagaimana mengukur Chrome, Safari, Firefox, IE, dan Opera
  • Review: 13 kerangka web Python primo
  • Kekuatan pemrograman malas
  • Unduh: Panduan pengembangan karier pengembang
  • 7 ide pemrograman buruk yang berhasil
  • 9 kebiasaan buruk pemrograman yang diam-diam kami sukai
  • 21 tren pemrograman populer - dan 21 menjadi dingin