Navigation API peramban modern
Gunakan Navigation API untuk mencegat dan menyesuaikan navigasi.
Navigation API peramban modern adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.
Pengganti Modern
API Navigasi adalah pengganti API Riwayat yang lebih baru dan lebih canggih. API ini memperlakukan navigasi sebagai objek utama yang dapat Anda cegat, batalkan, dan tunggu—lebih mendekati cara SPA menangani perutean pada tahun 2024.
Objek window.navigation
window.navigation menyediakan daftar entri, entri saat ini, dan peristiwa navigasi. navigation.entries() mengembalikan setiap entri dalam riwayat saat ini; navigation.currentEntry adalah entri aktif. Bandingkan dengan panjang API Riwayat yang buram dan status yang tidak dapat dibaca.
Peristiwa Navigasi
Dengarkan navigation.addEventListener("navigate", handler) untuk mencegat setiap navigasi dalam dokumen yang sama—klik tautan, pengiriman formulir, navigasi kembali/maju, dan navigasi terprogram. Satu kait menggantikan kumpulan pencegatan klik, popstate, dan pendengar pengiriman formulir.
navigation.addEventListener("navigate", (e) => {
if (!e.canIntercept) return;
e.intercept({
handler: async () => {
await renderPage(new URL(e.destination.url).pathname);
}
});
});intercept dan Penangan
Memanggil e.intercept({ handler }) mengambil alih navigasi. Penangan mengembalikan nilai yang dapat ditunggu; selama masih menunggu, navigasi berstatus "sedang berlangsung" dan URL sudah diperbarui. Cara ini menyatukan perlombaan historis antara perubahan URL dan penampilan tampilan.
Pemeriksaan canIntercept
Tidak semua navigasi dapat dicegat (lintas asal, unduhan). Periksa e.canIntercept sebelum memanggil intercept. Penjagaan defensif ini hanya membutuhkan satu baris dan membedakan navigasi SPA dari keberangkatan lintas asal yang sebenarnya.
Metode navigation.navigate
navigation.navigate(url, options) memicu navigasi secara terprogram, setara dengan klik. Objek yang dikembalikan memiliki promise committed dan finished, sehingga Anda dapat menunggu perubahan URL atau penyelesaian penuh penangan.
Status dan Kunci Entri
Setiap entri navigasi memiliki key yang stabil (di seluruh pemuatan ulang) dan id yang berlaku per sesi. Gunakan key untuk status persisten (posisi gulir yang disimpan, draf formulir) dan id untuk status sementara. Satu-satunya status API Riwayat hanyalah objek data buram.
Kembali dan Maju
navigation.back() dan navigation.forward() adalah pembungkus praktis untuk traverseTo. Keduanya mengembalikan pasangan hasil yang dapat ditunggu yang sama, { committed, finished }, sehingga Anda dapat menunggu navigasi kembali selesai sebelum melakukan pekerjaan lanjutan.
Membatalkan Navigasi
Jika pengguna mengeklik tautan kedua saat tautan pertama masih dirender, navigasi yang sedang berlangsung dapat dibatalkan. Penangan menerima AbortSignal melalui e.signal; teruskan ke panggilan pengambilan data agar pekerjaan yang sudah tidak relevan dibatalkan saat navigasi baru dimulai.
e.intercept({
handler: async () => {
const data = await fetch(url, { signal: e.signal });
renderPage(await data.json());
}
});Mengapa Tidak Cukup Menggunakan API Riwayat
API Riwayat memang berfungsi, tetapi penggunaannya kurang praktis: perubahan status dan perenderan tampilan tidak saling terhubung, penanganan klik harus dilakukan secara manual, koordinasi banyak pendengar rentan bermasalah, dan pemulihan posisi gulir tidak lengkap. API Navigasi sejak awal dirancang untuk kebutuhan SPA dan mengatasi semua masalah tersebut.
Dukungan Peramban
Chrome dan Edge mendukung API Navigasi. Safari dan Firefox masih tertinggal (per awal 2026); kirim kode yang mendeteksi fitur ("navigation" in window) dan gunakan cadangan API Riwayat + peristiwa perubahan status jika fitur tersebut tidak tersedia. Kerangka kerja seperti SvelteKit dan TanStack sudah membungkus pendeteksian ini.
Kapan Mengadopsinya
Untuk proyek baru yang menargetkan audiens yang terutama menggunakan Chromium, adopsi sekarang dan terima penggunaan cadangan API Riwayat. Untuk situs publik dengan audiens luas, tunggu dukungan Safari/Firefox (atau gunakan pustaka perutean yang mengabstraksikan keduanya). API yang lebih sederhana ini layak ditunggu.
Uji Pengetahuan
Apa keunggulan utama peristiwa navigasi pada API Navigasi dibandingkan kombinasi perubahan status pada API Riwayat dan pencegatan klik manual?
Ringkasan
API Navigasi menyatukan navigasi SPA di bawah satu peristiwa navigasi dengan semantik intercept/pembatalan, kunci per entry yang stabil, dan penantian penangan asinkron. API ini menggantikan rangkaian tambal sulam API Riwayat + perubahan status + pencegatan klik. API ini didukung di peramban Chromium saat ini; lakukan pendeteksian fitur dan gunakan cadangan API Riwayat untuk kode lintas peramban sampai Safari dan Firefox menyusul.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Navigation API peramban modern” gratis?
Ya — teks lengkap “Navigation API peramban modern” 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 “Navigation API peramban modern”?
Gunakan Navigation API untuk mencegat dan menyesuaikan navigasi. 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 4 dari 4.
Berapa lama pelajaran “Navigation API peramban modern” 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
- pushState dan replaceState
- Peristiwa popstate
- Perutean Berbasis Hash vs Berbasis Jalur
- Navigation API peramban modern