Bagaimana saya dapat memuat ulang halaman web secara otomatis, jika tidak ada aktivitas pada halaman tersebut untuk jangka waktu tertentu?
javascript
ajax
Umar Adil
sumber
sumber
Jawaban:
Jika Anda ingin me-refresh halaman jika tidak ada aktivitas maka Anda perlu mencari cara untuk mendefinisikan aktivitas. Katakanlah kita me-refresh halaman setiap menit kecuali seseorang menekan tombol atau menggerakkan mouse. Ini menggunakan jQuery untuk pengikatan acara:
sumber
Ini dapat dilakukan tanpa javascript, dengan metatag ini:
di mana konten = "5" adalah detik-detik di mana halaman akan menunggu sampai di-refresh.
Tetapi Anda mengatakan hanya jika tidak ada aktivitas, aktivitas seperti apa itu?
sumber
setInterval
, sangat senang mengetahui ini ada!Saya telah membangun solusi javascript lengkap juga yang tidak memerlukan jquery. Mungkin bisa mengubahnya menjadi plugin. Saya menggunakannya untuk cairan menyegarkan otomatis, tetapi sepertinya itu bisa membantu Anda di sini.
JSFiddle AutoRefresh
sumber
Di atas akan menyegarkan halaman setiap 10 menit kecuali resetTimeout () dipanggil. Sebagai contoh:
sumber
Berdasarkan jawaban arturnt yang diterima. Ini adalah versi yang sedikit dioptimalkan, tetapi pada dasarnya melakukan hal yang sama:
Satu-satunya perbedaan adalah bahwa versi ini menggunakan
setInterval
alih-alihsetTimeout
, yang membuat kode lebih kompak.sumber
1000
jika menghitung menggunakan60000
?Setiap kali Anda menggerakkan mouse itu akan memeriksa kapan terakhir kali Anda memindahkan mouse. Jika interval waktu lebih besar dari 20 'itu akan memuat ulang halaman, selain itu akan memperbarui waktu-terakhir-Anda-pindah-mouse-.
sumber
Muat ulang secara otomatis dengan target pilihan Anda. Dalam hal ini target
_self
ditetapkan untuk dirinya sendiri, tetapi Anda dapat mengubah halaman memuat ulang dengan hanya mengubahwindow.open('self.location', '_self');
kode ke sesuatu seperti contoh iniwindow.top.location="window.open('http://www.YourPageAdress.com', '_self'";
.Dengan pesan ALERT konfirmasi:
Tanpa peringatan konfirmasi:
Kode tubuh adalah SAMA untuk kedua solusi:
sumber
gunakan
setInterval
metode JavaScript :sumber
sumber
Saya akan mempertimbangkan
activity
apakah pengguna berfokus pada jendela atau tidak. Misalnya, ketika Anda mengklik dari satu jendela ke jendela lain (misalnya Google Chrome ke iTunes, atau Tab 1 ke Tab 2 dalam browser internet), halaman web dapat mengirim panggilan balik yang mengatakan "Saya tidak fokus!" atau "Aku dalam fokus!". Orang dapat menggunakan jQuery untuk memanfaatkan kemungkinan kurangnya aktivitas ini untuk melakukan apa pun yang mereka inginkan. Jika saya berada di posisi Anda, saya akan menggunakan kode berikut untuk memeriksa fokus setiap 5 detik, dll dan memuat ulang jika tidak ada fokus.sumber
Dan akhirnya solusi paling sederhana:
Dengan konfirmasi lansiran:
Tanpa konfirmasi peringatan:
Kode tubuh adalah SAMA untuk kedua solusi
sumber
Dengan teks konfirmasi pada halaman alih-alih peringatan
Karena ini adalah metode lain untuk memuat otomatis jika tidak aktif saya memberikan jawaban kedua. Yang ini lebih sederhana dan lebih mudah dimengerti.
Dengan memuat ulang konfirmasi pada halaman
Kotak konfirmasi ketika digunakan dengan konfirmasi pada halaman
Kode tubuh untuk keduanya adalah SAMA
CATATAN: Jika Anda tidak ingin memiliki konfirmasi pada halaman, gunakan Tanpa konfirmasi
sumber
Menggunakan LocalStorage untuk melacak aktivitas terakhir kali, kita dapat menulis fungsi reload sebagai berikut
Kemudian kita membuat fungsi panah yang menyimpan waktu interaksi terakhir dalam milidetik (String)
Kita perlu mendengarkan
beforeunload
acara di browser untuk menghapuslastinteraction
catatan kita sehingga kita tidak terjebak dalam loop reload yang tak terbatas.Peristiwa aktivitas pengguna yang perlu kita pantau adalah
mousemove
dankeypress
. Kami menyimpan waktu interaksi terakhir ketika pengguna menggerakkan mouse atau menekan tombol pada keyboardUntuk mengatur pendengar terakhir kami, kami akan menggunakan
load
acara tersebut. Pada pemuatan halaman, kami menggunakansetInterval
fungsi untuk memeriksa apakah halaman telah kedaluwarsa setelah periode tertentu.sumber
Tugas ini sangat mudah menggunakan kode berikut di bagian header html
Ini akan menyegarkan halaman Anda setelah 30 detik.
sumber