Comment rafraîchir une page avec jQuery?
21 réponses
Utilisation location.reload()
:
$('#something').click(function() {
location.reload();
});
la fonction reload()
prend un paramètre optionnel qui peut être défini à true
pour forcer une recharge à partir du serveur plutôt que du cache. Le paramètre par défaut est false
, donc par défaut la page peut se recharger à partir du cache du navigateur.
cela devrait fonctionner sur tous les navigateurs, même sans jQuery:
location.reload();
Il y a multiple illimité pour actualiser une page avec du JavaScript:
-
location.reload()
-
history.go(0)
-
location.href = location.href
-
location.href = location.pathname
-
location.replace(location.pathname)
-
location.reload(false)
si nous avions besoin de tirer le document de le serveur web encore une fois (comme lorsque le contenu du document changement dynamique) nous pourrions passer l'argument comme
true
.
Vous pouvez continuer la liste à être créatif:
-
window.location = window.location
-
window.self.window.self.window.window.location = window.location
- ...et autres 534 voies
var methods = [
"location.reload()",
"history.go(0)",
"location.href = location.href",
"location.href = location.pathname",
"location.replace(location.pathname)",
"location.reload(false)"
];
var $body = $("body");
for (var i = 0; i < methods.length; ++i) {
(function(cMethod) {
$body.append($("<button>", {
text: cMethod
}).on("click", function() {
eval(cMethod); // don't blame me for using eval
}));
})(methods[i]);
}
button {
background: #2ecc71;
border: 0;
color: white;
font-weight: bold;
font-family: "Monaco", monospace;
padding: 10px;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.5s ease;
margin: 2px;
}
button:hover {
background: #27ae60;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
beaucoup de façons fonctionneront, je suppose:
-
window.location.reload();
-
history.go(0);
-
window.location.href=window.location.href;
pour recharger une page avec jQuery, faire:
$.ajax({
url: "",
context: document.body,
success: function(s,x){
$(this).html(s);
}
});
L'approche que j'ai utilisée ici était Ajax jQuery. Je l'ai testé sur Chrome 13. Puis j'ai mis le code dans le gestionnaire qui va déclencher le recharger. Le URL est ""
, qui signifie cette page .
si la page courante a été chargée par une requête POST, vous pouvez utiliser
window.location = window.location.pathname;
au lieu de
window.location.reload();
parce que window.location.reload()
demandera une confirmation s'il est appelé sur une page qui a été chargée par une requête POST.
la question devrait être,
comment rafraîchir une page avec JavaScript
window.location.href = window.location.href; //This is a possibility
window.location.reload(); //Another possiblity
history.go(0); //And another
vous êtes gâté pour le choix.
vous pouvez vouloir utiliser
location.reload(forceGet)
forceGet
est un booléen optionnel.
la valeur par défaut est false qui recharge la page depuis le cache.
définissez ce paramètre à true si vous voulez forcer le navigateur à récupérer la page du serveur pour se débarrasser du cache.
ou juste
location.reload()
si vous voulez rapide et facile avec la mise en cache.
Trois approches différentes cache comportements liés à:
-
location.reload(true)
dans les navigateurs qui implémentent le paramètre
forcedReload
delocation.reload()
, recharge en récupérant une nouvelle copie de la page et de toutes ses ressources (scripts, feuilles de style, images, etc.). Ne servira pas les ressources ou de la cache-gets fresh copie depuis le serveur sans envoyer d'en-têtesif-modified-since
ouif-none-match
dans la requête.équivalent à l'utilisateur effectuant un "rechargement dur" dans les navigateurs lorsque c'est possible.
notez que passer
true
àlocation.reload()
est pris en charge dans Firefox (voir MDN ) et Internet Explorer (voir MSDN ) mais n'est pas pris en charge universellement et ne fait pas partie de le W3 HTML 5 spec , ni le W3 projet de HTML 5.1 spec , ni le WHATWG HTML Living Standard .dans les navigateurs non supportant, comme Google Chrome,
location.reload(true)
se comporte commelocation.reload()
. -
location.reload()
oulocation.reload(false)
Télécharge la page, récupère une copie non mise en cache de la page HTML elle-même, et exécute RFC 7234 les requêtes de revalidation pour toutes les ressources (comme les scripts) que le navigateur a mis en cache, même si elles sont fresh "1519360920 sont RFC 7234 permet au navigateur de les servir sans revalidation.
exactement comment le navigateur devrait utiliser son cache lors de l'exécution d'un appel
location.reload()
n'est pas spécifié ou documenté autant que je peux dire; j'ai déterminé le comportement ci-dessus par l'expérimentation.cela équivaut à ce que l'utilisateur appuie simplement sur le bouton" Rafraîchir " de son navigateur.
-
location = location
(ou infiniment beaucoup d'autres techniques possibles qui impliquent l'assignation àlocation
ou à ses propriétés)ne fonctionne que si L'URL de la page ne contient pas de fragid/hashbang!
recharge la page sans refetching ou revalidation any fresh ressources de la cache. Si le HTML de la page elle-même est frais, cela va recharger la page sans effectuer aucune requête HTTP du tout.
c'est équivalent (du point de vue de la mise en cache) à l'utilisateur qui ouvre la page dans un nouvel onglet.
cependant, si L'URL de la page contient un hachage, cela n'aura aucun effet.
encore une fois, le comportement de mise en cache ici n'est pas spécifié pour autant que je sache; je l'ai déterminé par des tests.
donc, en résumé, vous voulez utiliser:
-
location = location
pour une utilisation maximale du cache, aussi longtemps que la page n'a pas de hachage dans son URL, auquel cas cela ne fonctionnera pas"" -
location.reload(true)
à récupérez de nouvelles copies de toutes les ressources sans les revalider (bien que ce ne soit pas universellement supporté et ne se comportera pas différemment delocation.reload()
dans certains navigateurs, comme Chrome) -
location.reload()
pour reproduire fidèlement l'effet de l'utilisateur en cliquant sur le bouton "actualiser".
window.location.reload()
rechargera à partir du serveur et chargera toutes vos données, scripts, images, etc. encore.
donc si vous voulez juste rafraîchir le HTML, le window.location = document.URL
reviendra beaucoup plus vite et avec moins de trafic. Mais il ne rechargera pas la page s'il y a un hachage (#) dans L'URL.
la fonction jQuery Load
peut également effectuer un rafraîchissement de page:
$('body').load('views/file.html', function () {
$(this).fadeIn(5000);
});
Voici une solution qui recharge de façon asynchrone une page en utilisant jQuery. Il évite le clignotement causé par window.location = window.location
. Cet exemple montre une page qui se recharge en continu, comme dans un tableau de bord. Il est testé au combat et fonctionne sur un écran d'information dans Times Square.
<!DOCTYPE html>
<html lang="en">
<head>
...
<meta http-equiv="refresh" content="300">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
<script>
function refresh() {
$.ajax({
url: "",
dataType: "text",
success: function(html) {
$('#fu').replaceWith($.parseHTML(html));
setTimeout(refresh,2000);
}
});
}
refresh();
</script>
</head>
<body>
<div id="fu">
...
</div>
</body>
</html>
Notes:
- en utilisant
$.ajax
directement comme$.get('',function(data){$(document.body).html(data)})
provoque des fichiers css/js pour obtenir cache-busted , même si vous utilisezcache: true
, c'est pourquoi nous utilisonsparseHTML
-
parseHTML
ne trouverez PAS unbody
tag de sorte que votre corps tout entier a besoin d'aller en dehors de la div, j'espère que cette pépite de la connaissance vous aide un jour, vous pouvez imaginer comment nous avons choisi l'id de cediv
- utiliser
http-equiv="refresh"
juste au cas où quelque chose tourne mal avec javascript/serveur hoquet, alors la page sera toujours recharger sans que vous receviez un appel téléphonique - cette approche fuit probablement la mémoire d'une façon ou d'une autre, le
http-equiv
refresh corrige que
comme la question est générique, essayons de résumer les solutions possibles pour la réponse:
de Simples JavaScript Solution :
la solution la plus facile est une solution à une ligne placée de manière appropriée:
location.reload();
ce que beaucoup de gens manquent ici, parce qu'ils espèrent obtenir quelques "points" est que la fonction reload () elle-même offre un booléen comme paramètre (détails: https://developer.mozilla.org/en-US/docs/Web/API/Location/reload ).
L'Emplacement.la méthode de rechargement() recharge la ressource à partir du courant URL. Facultatif unique paramètre est un Booléen, qui, lorsqu'il est true, fait que la page est toujours rechargée à partir du serveur. Si c'est faux ou pas spécifié, le navigateur peut recharger la page à partir de son cache.
cela signifie qu'il y a deux façons:
Solution1: Force de rechargement de la page courante à partir du serveur
location.reload(true);
Solution2: rechargement à partir du cache ou du serveur (basé sur le navigateur et votre configuration)
location.reload(false);
location.reload();
et si vous voulez le combiner avec jQuery une écoute d'un événement, je recommande d'utiliser le".sur la (les) méthode" au lieu de ".cliquez sur" ou tout autre événement wrappers, par exemple, plus de solution correcte serait:
$('#reloadIt').on('eventXyZ', function() {
location.reload(true);
});
j'ai trouvé
window.location.href = "";
ou
window.location.href = null;
fait aussi un rafraîchissement de page.
cela rend beaucoup plus facile de recharger la page en supprimant tout hachage. C'est très agréable quand J'utilise AngularJS dans le simulateur iOS, de sorte que je n'ai pas à réinitialiser l'application.
vous pouvez utiliser la méthode JavaScript location.reload()
.
Cette méthode accepte un paramètre booléen. true
ou false
. Si le paramètre est true
, la page est toujours rechargée à partir du serveur. Si c'est false
, qui est la valeur par défaut ou avec un paramètre vide, le navigateur rechargera la page depuis son cache.
avec true
paramètre
<button type="button" onclick="location.reload(true);">Reload page</button>
avec default
/ false
paramètre
<button type="button" onclick="location.reload();">Reload page</button>
à l'Aide de jquery
<button id="Reloadpage">Reload page</button>
<script type="text/javascript">
$('#Reloadpage').click(function() {
location.reload();
});
</script>
Vous n'ont pas besoin de quoi que ce soit à partir de jQuery, pour recharger une page à l'aide de JavaScript , il suffit d'utiliser recharger fonction de l'emplacement de la propriété comme ceci:
window.location.reload();
par défaut, cela va recharger la page en utilisant le cache du navigateur (s'il existe)...
si vous souhaitez faire recharger la page par la force, il vous suffit de passer la valeur true pour recharger la méthode comme ci-dessous...
window.location.reload(true);
aussi si vous êtes déjà dans window scope , vous pouvez vous débarrasser de window et faire:
location.reload();
si vous utilisez jQuery et que vous voulez rafraîchir, alors essayez d'ajouter votre jQuery dans une fonction javascript:
j'ai voulu cacher une iframe à partir d'une page en cliquant oh un h3
, pour moi, il a fonctionné, mais je n'ai pas été en mesure de cliquer l'élément qui m'a permis de voir le iframe
pour commencer à moins que je rafraîchis le navigateur manuellement...pas l'idéal.
j'ai essayé la suivante:
var hide = () => {
$("#frame").hide();//jQuery
location.reload(true);//javascript
};
le Mélange de la plaine Jane javascript avec votre jQuery devrait fonctionner.
// code where hide (where location.reload was used)function was integrated, below
iFrameInsert = () => {
var file = `Fe1FVoW0Nt4`;
$("#frame").html(`<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/${file}\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen></iframe><h3>Close Player</h3>`);
$("h3").enter code hereclick(hide);
}
// View Player
$("#id-to-be-clicked").click(iFrameInsert);
utilisez onclick="return location.reload();"
dans l'étiquette de bouton.
<button id="refersh-page" name="refersh-page" type="button" onclick="return location.reload();">Refesh Page</button>
Simple Solution Javascript:
location = location;
<button onClick="location = location;">Reload</button>
voici quelques lignes de code que vous pouvez utiliser pour recharger la page en utilisant jQuery .
il utilise le papier d'emballage jQuery et extrait l'élément dom natif.
utilisez ceci si vous voulez juste un jQuery feeling sur votre code et vous ne vous souciez pas de vitesse/performance du code.
il suffit de choisir de 1 à 10 qui convient à vos besoins ou ajouter un peu plus en fonction de la modèle et réponses avant cette.
<script>
$(location)[0].reload(); //1
$(location).get(0).reload(); //2
$(window)[0].location.reload(); //3
$(window).get(0).location.reload(); //4
$(window)[0].$(location)[0].reload(); //5
$(window).get(0).$(location)[0].reload(); //6
$(window)[0].$(location).get(0).reload(); //7
$(window).get(0).$(location).get(0).reload(); //8
$(location)[0].href = ''; //9
$(location).get(0).href = ''; //10
//... and many other more just follow the pattern.
</script>
toutes les réponses ici sont bonnes. Puisque la question spécifie de recharger la page avec jquery , j'ai juste pensé ajouter quelque chose de plus pour les futurs lecteurs.
jQuery est une croix-plate-forme bibliothèque JavaScript conçu pour simplifier le script côté client de HTML.
~ Wikipedia ~
donc vous comprendrez que la fondation de jquery , ou jquery est basée sur javascript . Donc, aller avec pur javascript est beaucoup mieux quand il s'agit de choses simples.
mais si vous avez besoin d'une solution jquery , en voici une.
$(location).attr('href', '');