Saya ingin memeriksa ketika seseorang mencoba me-refresh halaman.
Sebagai contoh, ketika saya membuka halaman tidak ada yang terjadi tetapi ketika saya me-refresh halaman itu akan muncul peringatan.
javascript
page-refresh
Ahmed
sumber
sumber
window.performance.navigation.type
sudah usang, mohon lihat jawaban saya .Jawaban:
⚠️⚠️⚠️
window.performance.navigation.type
sudah usang, silakan lihat jawaban Илья ЗеленькоCara yang lebih baik untuk mengetahui bahwa halaman tersebut benar-benar dimuat ulang adalah dengan menggunakan objek navigator yang didukung oleh sebagian besar browser modern.
Ini menggunakan API Timing Navigasi .
sumber: https://developer.mozilla.org/en-US/docs/Web/API/Navigation_timing_API
sumber
performance.navigation.type == performance.navigation.TYPE_RELOAD
lebih mudah dibaca daripada== 1
. Juga, jika Anda memeriksa,performance.navigation
Anda akan menemukan bahwa ada 4 jenis navigasi berbeda sepertiTYPE_BACK_FORWARD
,TYPE_NAVIGATE
window.performance.navigation.type
sudah usang, mohon lihat jawaban saya .Langkah pertama adalah memeriksa
sessionStorage
beberapa nilai yang telah ditentukan sebelumnya dan jika ada pengguna lansiran:Langkah kedua adalah menetapkan
sessionStorage
beberapa nilai (misalnyatrue
):Nilai sesi disimpan hingga halaman ditutup sehingga hanya akan berfungsi jika halaman dimuat ulang di tab baru dengan situs. Anda juga dapat terus menghitung ulang dengan cara yang sama.
sumber
true
dikonversi ke"true"
. 2). Penyimpanan sesi berlanjut hingga pengguna menutup jendela browser, jadi Anda tidak bisa membedakan antara memuat ulang halaman dan menavigasi dari dan kembali ke situs Anda dalam sesi browser yang sama.Standar baru 2018-sekarang (PerformanceNavigationTiming)
window.performance.navigation
properti tidak digunakan dalam spesifikasi Level 2 Navigasi Timing . Silakan gunakanPerformanceNavigationTiming
antarmuka sebagai gantinya.PerformanceNavigationTiming.type
Ini adalah teknologi eksperimental .
Periksa tabel kompatibilitas Browser dengan cermat sebelum menggunakannya dalam produksi.
Dukungan pada 2019-07-08
Properti read-only tipe mengembalikan string yang mewakili jenis navigasi. Nilai harus salah satu dari yang berikut:
navigasikan - Navigasi dimulai dengan mengklik tautan, memasukkan URL di bilah alamat browser, pengiriman formulir, atau menginisialisasi melalui operasi skrip selain memuat ulang dan back_forward seperti yang tercantum di bawah ini.
ulang - Navigasi adalah melalui operasi ulang browser atau
location.reload()
.back_forward - Navigasi adalah melalui operasi traversal riwayat browser.
prerender - Navigasi dimulai oleh petunjuk prerender .
Properti ini hanya Baca.
Contoh berikut menggambarkan penggunaan properti ini.
sumber
Simpan cookie saat pertama kali seseorang mengunjungi halaman tersebut. Saat refresh periksa apakah cookie Anda ada dan apakah ada, beri tahu.
dan di tag tubuh Anda:
sumber
jika
kembali
0 => pengguna baru saja mengetik dalam Url
1 => halaman dimuat ulang
2 => tombol kembali diklik.
sumber
performance.navigation.type
sudah usang, tolong lihat jawaban saya .Saya menemukan beberapa informasi di sini Javascript Detecting Page Refresh . Rekomendasi pertamanya adalah menggunakan bidang tersembunyi, yang cenderung disimpan melalui penyegaran halaman.
sumber
Referer
properti dan memodifikasi respons server berdasarkan pada properti ini<script>
elemen ke bawah akan berhasil - tetapi itu masih bukan solusi yang dijamin (dan begitu pula metode cookie).Referer
juga tidak dapat diandalkan; banyak proxy dan ekstensi browser menghapusnya dari permintaan.Saya telah menulis fungsi ini untuk memeriksa kedua metode menggunakan lama
window.performance.navigation
dan baruperformance.getEntriesByType("navigation")
dalam waktu yang bersamaan:Deskripsi hasil:
0: mengklik tautan, Memasukkan URL di bilah alamat browser, pengiriman formulir, Mengklik bookmark, menginisialisasi melalui operasi skrip.
1: Mengklik tombol Muat Ulang atau menggunakan
Location.reload()
2: Bekerja dengan riwayat browser (Bakc dan Forward).
3: aktivitas pra-perenderan seperti
<link rel="prerender" href="https://example.com/next-page.html">
4: metode lain.
sumber
Saya menemukan beberapa informasi di sini Javascript Detecting Page Refresh
sumber
sumber