Bagaimana saya bisa me-refresh halaman dengan jQuery?
javascript
jquery
refresh
reload
luca
sumber
sumber
Jawaban:
Gunakan
location.reload()
:The
reload()
fungsi mengambil parameter opsional yang dapat diatur untuktrue
untuk memaksa ulang dari server daripada cache. Parameter default untukfalse
, jadi secara default halaman dapat memuat ulang dari cache browser.sumber
window.location.href=window.location.href;
danlocation.href=location.href;
bekerja.window.location.reload(true);
akan susah menyegarkan, jika tidak maka itu salahlocation.reload();
adalah javascript standar. Anda tidak perlu jQuery untuk itu.Ini harus bekerja di semua browser bahkan tanpa jQuery:
sumber
Ada
beberapacara tak terbatas untuk menyegarkan halaman dengan JavaScript:location.reload()
history.go(0)
location.href = location.href
location.href = location.pathname
location.replace(location.pathname)
location.reload(false)
Anda dapat melanjutkan daftar menjadi kreatif:
window.location = window.location
window.self.window.self.window.window.location = window.location
sumber
(reload()/(false))
lebih lambat. hmmm. menarik. :) dan 1 dan 6 sama denganreload()
parameter defaultnyafalse
.location.href = location.href
adalah apa yang biasanya saya gunakan, tetapi terima kasih untuk yang lain. Sangat berguna! +1Banyak cara akan berhasil, saya kira:
window.location.reload();
history.go(0);
window.location.href=window.location.href;
sumber
window.location.href=window.location.href;
tidak akan melakukan apa - apa jika URL Anda memiliki # / hashbang di bagian akhirexample.com/something#blah
:location.reload()
danhistory.go(0)
adalah: tidak ada. Bagian yang relevan dari spesifikasi HTML 5 di w3.org/TR/html5/browsers.html#dom-history-go secara eksplisit menentukan bahwa mereka setara: "Ketikago(delta)
metode dipanggil, jika argumen ke metode dihilangkan atau memiliki nilai nol, agen pengguna harus bertindak seolah-olahlocation.reload()
metode itu dipanggil. "Untuk memuat ulang halaman dengan jQuery, lakukan:
Pendekatan di sini yang saya gunakan adalah Ajax jQuery. Saya mengujinya di Chrome 13. Kemudian saya memasukkan kode di handler yang akan memicu memuat ulang. The URL adalah
""
, yang berarti halaman ini .sumber
context
parameter$.ajax
dan mengharapkannya entah bagaimana melakukan semacam sihir. Yang dilakukannya hanyalah mengaturthis
nilai fungsi panggilan balik . Ajax ke URL""
akan mengenai URL Anda saat ini, sehingga biasanya memuat HTML lengkap (termasuk<html>
dan<head>
dan<body>
), dan tidak ada dalam jawaban ini yang menyaring hal-hal yang tidak Anda inginkan.Jika halaman saat ini dimuat oleh permintaan POST, Anda mungkin ingin menggunakan
dari pada
karena
window.location.reload()
akan meminta konfirmasi jika dipanggil pada halaman yang dimuat oleh permintaan POST.sumber
window.location = window.location
juga tidak sempurna; ia tidak melakukan apa-apa jika ada fragmen (hashbang) di URL saat ini.Pertanyaannya seharusnya,
Cara me-refresh halaman dengan JavaScript
Anda dimanja oleh pilihan.
sumber
Anda mungkin ingin menggunakan
forceGet
adalah boolean dan opsional.Defaultnya salah yang memuat ulang halaman dari cache.
Setel parameter ini menjadi true jika Anda ingin memaksa browser untuk mendapatkan halaman dari server untuk menyingkirkan cache juga.
Atau hanya
jika Anda ingin cepat dan mudah dengan caching.
sumber
Tiga pendekatan dengan perilaku terkait cache yang berbeda:
location.reload(true)
Di browser yang menerapkan
forcedReload
parameterlocation.reload()
, reload dengan mengambil salinan halaman baru dan semua sumber dayanya (skrip, stylesheet, gambar, dll.). Tidak akan menayangkan sumber daya apa pun dari cache - mendapat salinan baru dari server tanpa mengirimif-modified-since
atauif-none-match
header dalam permintaan.Setara dengan pengguna yang melakukan "pemuatan ulang" di peramban jika memungkinkan.
Perhatikan bahwa meneruskan
true
kelocation.reload()
didukung di Firefox (lihat MDN ) dan Internet Explorer (lihat MSDN ) tetapi tidak didukung secara universal dan bukan bagian dari spesifikasi W3 HTML 5 , atau spesifikasi W3 draft HTML 5.1 , atau Standar Hidup WHATWG HTML .Di browser yang tidak didukung, seperti Google Chrome,
location.reload(true)
berperilaku sama denganlocation.reload()
.location.reload()
ataulocation.reload(false)
Muat ulang halaman, mengambil salinan HTML halaman baru yang tidak di-cache itu sendiri, dan melakukan permintaan validasi ulang RFC 7234 untuk sumber daya apa pun (seperti skrip) yang telah di-cache oleh browser, bahkan jika masih baru , RFC 7234 mengizinkan browser untuk melayani mereka tanpa validasi ulang.
Bagaimana tepatnya browser harus menggunakan cache ketika melakukan
location.reload()
panggilan tidak ditentukan atau didokumentasikan sejauh yang saya tahu; Saya menentukan perilaku di atas dengan eksperimen.Ini sama dengan pengguna hanya dengan menekan tombol "refresh" di browser mereka.
location = location
(atau tak terhingga banyaknya teknik lain yang mungkin melibatkan penetapanlocation
atau untuk propertinya)Hanya berfungsi jika URL halaman tidak mengandung fragmen / hashbang!
Ulang halaman tanpa refetching atau revalidating setiap segar sumber dari cache. Jika HTML halaman itu sendiri segar, ini akan memuat ulang halaman tanpa melakukan permintaan HTTP sama sekali.
Ini setara (dari perspektif caching) untuk pengguna yang membuka halaman di tab baru.
Namun, jika URL halaman berisi hash, ini tidak akan berpengaruh.
Sekali lagi, perilaku caching di sini tidak ditentukan sejauh yang saya tahu; Saya menentukannya dengan pengujian.
Jadi, secara ringkas, Anda ingin menggunakan:
location = location
untuk penggunaan cache yang maksimal, selama halaman tersebut tidak memiliki hash dalam URL-nya, dalam hal ini ini tidak akan berfungsilocation.reload(true)
untuk mengambil salinan baru dari semua sumber daya tanpa memvalidasi ulang (meskipun tidak didukung secara universal dan tidak akan berperilaku berbedalocation.reload()
di beberapa browser, seperti Chrome)location.reload()
untuk mereproduksi efek pengguna mengklik tombol 'segarkan' dengan setia.sumber
location = location
tidak berfungsi jika ada hash di URL. Untuk situs apa pun yang menggunakan fragmen - atau bahkan untuk situs mana pun yang ditautkan oleh seseorang dengan suatu halaman dapat menambahkan fragid ke URL - yang membuatnya rusak.window.location.reload()
akan memuat ulang dari server dan akan memuat semua data, skrip, gambar, dll. lagi.Jadi jika Anda hanya ingin me-refresh HTML,
window.location = document.URL
akan kembali lebih cepat dan dengan lalu lintas lebih sedikit. Tapi itu tidak akan memuat ulang halaman jika ada hash (#) di URL.sumber
location.reload()
memaksa validasi ulang sumber daya yang di-cache, bahkan tanpa argumen, sementara denganwindow.location = document.URL
senang hati melayani sumber daya yang di-cache tanpa mengenai server selama mereka masih baru.Fungsi jQuery
Load
juga dapat melakukan penyegaran halaman:sumber
Karena pertanyaannya umum, mari kita simpulkan solusi yang mungkin untuk jawabannya:
Solusi JavaScript sederhana :
Cara termudah adalah solusi satu baris yang ditempatkan dengan cara yang tepat:
Apa yang banyak orang hilang di sini, karena mereka berharap mendapatkan "poin" adalah bahwa fungsi reload () sendiri menawarkan Boolean sebagai parameter (detail: https://developer.mozilla.org/en-US/docs/Web / API / Lokasi / memuat ulang ).
Ini berarti ada dua cara:
Solusi1: Paksa memuat ulang halaman saat ini dari server
Solution2: Reload dari cache atau server (berdasarkan browser dan konfigurasi Anda)
Dan jika Anda ingin menggabungkannya dengan jQuery dan mendengarkan acara, saya akan merekomendasikan menggunakan metode ".on ()" alih-alih ".click" atau pembungkus acara lainnya, misalnya solusi yang lebih tepat adalah:
sumber
Ini adalah solusi yang secara tidak sinkron memuat ulang suatu halaman menggunakan jQuery. Ini menghindari flicker yang disebabkan oleh
window.location = window.location
. Contoh ini menunjukkan halaman yang memuat ulang secara terus-menerus, seperti di dasbor. Ini adalah pertarungan teruji dan berjalan di TV layar informasi di Times Square.Catatan:
$.ajax
secara langsung seperti$.get('',function(data){$(document.body).html(data)})
menyebabkan file css / js rusak , bahkan jika Anda menggunakancache: true
, itu sebabnya kami menggunakanparseHTML
parseHTML
TIDAK akan menemukanbody
tag sehingga seluruh tubuh Anda perlu masuk div tambahan, saya harap nugget pengetahuan ini membantu Anda suatu hari, Anda dapat menebak bagaimana kami memilih id untuk itudiv
http-equiv="refresh"
kalau-kalau ada yang tidak beres dengan javascript / server cegukan, maka halaman akan MASIH reload tanpa Anda mendapat panggilan teleponhttp-equiv
penyegaran memperbaikinyasumber
saya menemukan
atau
juga membuat refresh halaman.
Ini membuatnya jauh lebih mudah untuk memuat ulang halaman menghapus hash. Ini sangat bagus ketika saya menggunakan AngularJS di simulator iOS, sehingga saya tidak perlu menjalankan ulang aplikasi.
sumber
Anda dapat menggunakan metode JavaScript
location.reload()
. Metode ini menerima parameter boolean.true
ataufalse
. Jika parameternyatrue
; halaman selalu dimuat ulang dari server. Jika memangfalse
; yang merupakan default atau dengan browser parameter kosong memuat ulang halaman dari cache itu.Dengan
true
parameterDengan
default
/false
parameterMenggunakan jquery
sumber
Anda tidak memerlukan apa pun dari jQuery, untuk memuat ulang laman menggunakan JavaScript murni , cukup gunakan fungsi muat ulang di properti lokasi seperti ini:
Secara default, ini akan memuat ulang halaman menggunakan cache browser (jika ada) ...
Jika Anda ingin melakukan pemuatan paksa halaman, cukup berikan nilai sebenarnya untuk memuat kembali metode seperti di bawah ini ...
Juga jika Anda sudah dalam lingkup jendela , Anda dapat menyingkirkan jendela dan melakukan:
sumber
menggunakan
atau
sumber
Gunakan
onclick="return location.reload();"
di dalam tag tombol.sumber
Jika Anda menggunakan jQuery dan ingin menyegarkan, cobalah menambahkan jQuery Anda dalam fungsi javascript:
Saya ingin menyembunyikan iframe dari halaman saat mengklik oh
h3
, bagi saya itu berfungsi tetapi saya tidak dapat mengklik item yang memungkinkan saya untuk melihatiframe
permulaan kecuali saya me-refresh browser secara manual ... tidak ideal.Saya mencoba yang berikut ini:
Mencampur javascript Jane sederhana dengan jQuery Anda akan berhasil.
sumber
Semua jawaban di sini baik. Karena pertanyaan menentukan tentang memuat ulang laman denganjquery, Saya hanya berpikir menambahkan sesuatu yang lebih untuk pembaca masa depan.
Jadi Anda akan mengerti bahwa fondasi jquery, atau jquery berdasarkan pada javascript. Jadi pergi dengan murnijavascript jauh lebih baik dalam hal hal-hal sederhana.
Tetapi jika Anda membutuhkan jquery solusi, ini satu.
sumber
Ada banyak cara untuk memuat ulang halaman saat ini, tetapi entah bagaimana menggunakan pendekatan itu Anda dapat melihat halaman diperbarui tetapi tidak dengan beberapa nilai cache akan ada di sana, jadi atasi masalah itu atau jika Anda ingin membuat permintaan yang sulit maka gunakan kode di bawah ini.
sumber
sumber
Solusi Javascript Sederhana:
sumber
Mungkin terpendek (12 karakter) - gunakan riwayat
sumber
Anda dapat menulisnya dengan dua cara. 1 adalah cara standar memuat ulang laman yang juga disebut penyegaran sederhana
Dan yang lainnya disebut hard refresh . Di sini Anda melewatkan ekspresi boolean dan mengaturnya menjadi true. Ini akan memuat ulang halaman yang menghancurkan cache yang lebih lama dan menampilkan konten dari awal.
sumber
Ini terpendek dalam JavaScript.
sumber
sumber
Berikut adalah beberapa baris kode yang dapat Anda gunakan untuk memuat ulang halaman menggunakan jQuery .
Ia menggunakan pembungkus jQuery dan mengekstrak elemen dom asli.
Gunakan ini jika Anda hanya ingin perasaan jQuery pada kode Anda dan Anda tidak peduli tentang kecepatan / kinerja kode.
Pilih saja dari 1 hingga 10 yang sesuai dengan kebutuhan Anda atau tambahkan beberapa lagi berdasarkan pola dan jawaban sebelum ini.
sumber