0Pricing
HTML Academy · Pelajaran

Deteksi Fitur vs Pengintaian Peramban

Gunakan deteksi fitur, bukan pengintaian agen pengguna.

Deteksi Fitur vs Pengintaian Peramban adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar HTML Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus HTML Academy mencakup 4 pelajaran total.

Dua Pendekatan terhadap Kompatibilitas

Untuk mengetahui apakah peramban saat ini mendukung suatu fitur, Anda dapat mendeteksi fitur secara langsung ("IntersectionObserver" in window) atau mengintai string agen pengguna (navigator.userAgent.includes("Chrome")). Salah satunya andal; yang lain telah lama menjadi sumber kesalahan.

Mengapa Pengintaian Gagal

String agen pengguna dapat menyesatkan. Edge mengaku sebagai Chrome (juga Safari dan Firefox). Chrome di Android mengirimkan UA yang berbeda dari Chrome di iOS. Peramban mendukung "pembekuan" string UA demi privasi. Logika apa pun yang berdasarkan string UA akan rusak setiap beberapa bulan.

Pola Deteksi Fitur

Periksa API aktual yang diperlukan kode: if ("IntersectionObserver" in window) { ... }. Jika properti tersebut ada, peramban mendukungnya; jika tidak, gunakan jalur cadangan. Pemeriksaan ini langsung, cepat, dan tahan terhadap perubahan masa depan.

if ("IntersectionObserver" in window) {
  const observer = new IntersectionObserver(handler);
} else {
  loadPolyfill().then(() => { /* use IntersectionObserver */ });
}

Deteksi, Lalu Gunakan

Padukan deteksi dengan cadangan yang nyata. Mendeteksi fitur yang hilang hanya berguna jika Anda memiliki tindakan untuk kondisi tersebut — muat pengisi fitur, tampilkan alternatif statis, atau sembunyikan fitur sepenuhnya.

Kueri Fitur CSS

CSS memiliki deteksi fiturnya sendiri: @supports (display: grid) { ... }. Blok tersebut hanya diterapkan ketika peramban memahami pasangan properti/nilai itu. Gunakan cara ini untuk mengirimkan tata letak grid dengan cadangan berbasis tata letak mengambang bagi peramban kuno.

@supports (display: grid) {
  .grid { display: grid; gap: 16px; }
}
@supports not (display: grid) {
  .grid > * { float: left; width: 33%; }
}

Petunjuk Klien Agen Pengguna

Peramban modern menyediakan informasi terstruktur melalui navigator.userAgentData (khusus Chromium). Informasi tersebut mengembalikan pasangan merek+versi, bukan string bebas. Tetap utamakan deteksi fitur — petunjuk UA hanya berguna ketika kemampuan tidak dapat disimpulkan dari pemeriksaan properti.

Kapan Pengintaian Dapat Diterima

Kasus penggunaan yang sempit dan sah untuk deteksi UA adalah mengecualikan peramban yang bermasalah: bug Safari iOS yang diketahui pada versi X. Bahkan dalam kondisi itu, utamakan pengecualian berbasis fitur (CSS.supports("aspect-ratio: 1")). Deteksi UA seharusnya menjadi pilihan terakhir.

Pustaka Bergaya Modernizr

Modernizr mengemas banyak deteksi fitur dan menampilkannya sebagai kelas pada elemen <html> (html.flexbox, html.no-flexbox). Proyek modern jarang memerlukannya — sebagian besar deteksi hanya terdiri dari satu baris — tetapi pustaka ini tetap berguna untuk migrasi lama.

Menguji Jalur Cadangan

Setelah deteksi diterapkan, uji kedua jalur. Buka DevTools, ubah fitur menjadi undefined, lalu pastikan jalur cadangan berfungsi. Jalur cadangan yang tidak diuji akan terbengkalai — ketika pengguna membutuhkannya, jalur tersebut sering gagal dengan cara yang tidak pernah dibayangkan pengembang.

Deteksi dalam Kerangka Kerja

React, Vue, dan kerangka kerja lainnya tidak memiliki API deteksi khusus — gunakan JavaScript biasa di dalam efek atau inisialisasi komponen. Aplikasi yang dirender di server harus mendeteksi di sisi klien karena "IntersectionObserver" in window tidak terdefinisi selama SSR.

Hindari Pengintaian UA Berbasis Kemampuan

Beberapa tim memeriksa UA untuk menebak kemampuan ("Apakah ini iPhone? Maka mungkin memiliki kemampuan sentuh"). Cara ini mencampuradukkan dua hal yang tidak berkaitan. Deteksi sentuhan secara langsung melalui "ontouchstart" in window atau, lebih baik, utamakan peristiwa penunjuk yang menyamarkan perbedaan cara masukan.

Uji Pengetahuan

Mengapa deteksi fitur lebih diutamakan daripada pengintaian agen pengguna untuk menangani kemampuan peramban?

Ringkasan

Utamakan deteksi fitur ("API" in window) daripada pengintaian agen pengguna. CSS memiliki @supports untuk tujuan yang sama. Selalu padukan deteksi dengan cadangan yang nyata dan uji kedua jalur. Pengintaian UA hanya boleh digunakan untuk mengecualikan versi peramban yang diketahui bermasalah, bukan untuk menebak kemampuan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Deteksi Fitur vs Pengintaian Peramban” gratis?

Ya — teks lengkap “Deteksi Fitur vs Pengintaian Peramban” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus HTML Academy, upgrade ke CoddyKit PRO. Kursus HTML Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Deteksi Fitur vs Pengintaian Peramban”?

Gunakan deteksi fitur, bukan pengintaian agen pengguna. Kamu berlatih HTML Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai HTML Academy?

Tidak diperlukan pengalaman sebelumnya. HTML Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Deteksi Fitur vs Pengintaian Peramban” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran HTML Academy ini?

Ya. Setiap pelajaran HTML Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Filosofi PE Mulai dengan HTML
  2. Deteksi Fitur vs Pengintaian Peramban
  3. Degradasi Anggun vs Peningkatan Progresif
  4. Membangun Akordeon PE
← Kembali ke HTML Academy