Comment actualiser une page avec jQuery?
Utilisez location.reload()
:
$('#something').click(function() {
location.reload();
});
La fonction reload()
accepte un paramètre facultatif pouvant être défini sur true
pour forcer un rechargement à partir du serveur plutôt que du cache. Le paramètre par défaut est false
. Par conséquent, la page peut être rechargée par défaut à partir du cache du navigateur.
Cela devrait fonctionner sur tous les navigateurs même sans jQuery:
location.reload();
Il y a plusieurs façons illimitées d'actualiser une page avec JavaScript:
location.reload()
history.go(0)
location.href = location.href
location.href = location.pathname
location.replace(location.pathname)
location.reload(false)
Si nous devions extraire à nouveau le document du serveur Web (par exemple, le contenu du document change de manière dynamique), nous passerions l'argument sous la forme
true
.
Vous pouvez continuer la liste en cours de création:
window.location = window.location
window.self.window.self.window.window.location = window.location
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>
Je suppose que beaucoup de moyens fonctionneront,
window.location.reload();
history.go(0);
window.location.href=window.location.href;
Pour recharger une page avec jQuery, faites:
$.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. Ensuite, j'ai mis le code dans le gestionnaire qui déclenchera le rechargement. Le URL est ""
, ce qui signifie cette page.
Si la page en cours a été chargée par une requête POST, vous souhaiterez peut-être utiliser
window.location = window.location.pathname;
au lieu de
window.location.reload();
car window.location.reload()
demandera une confirmation s’il est appelé sur une page chargée par une demande POST.
La question devrait être,
Comment actualiser 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 avez l'embarras du choix.
Vous voudrez peut-être utiliser
location.reload(forceGet)
forceGet
est un booléen et facultatif.
La valeur par défaut est false, ce qui recharge la page à partir du cache.
Définissez ce paramètre sur true si vous souhaitez forcer le navigateur à extraire la page du serveur afin de supprimer également le cache.
Ou juste
location.reload()
si vous voulez rapide et facile avec la mise en cache.
window.location.reload()
rechargera à partir du serveur et chargera à nouveau toutes vos données, scripts, images, etc.
Donc, si vous souhaitez simplement actualiser le code HTML, le window.location = document.URL
vous sera renvoyé beaucoup plus rapidement et avec moins de trafic. Mais il ne rechargera pas la page s'il y a un dièse (#) 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 manière asynchrone une page à l'aide de jQuery. Cela évite le scintillement causé par window.location = window.location
. Cet exemple montre une page qui recharge continuellement, comme dans un tableau de bord. Il a fait l'objet de tests de combat et fonctionne sur un téléviseur à écran d'information situé à 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>
Remarques:
$.ajax
directement comme $.get('',function(data){$(document.body).html(data)})
provoque que les fichiers css/js soient contournés en cache , même si vous utilisez cache: true
, c'est pourquoi nous utilisons parseHTML
parseHTML
NE TROUVERA PAS DE BALISE body
si tout votre corps a besoin d'une division supplémentaire, j'espère que cette pépite de connaissances vous aidera un jour, vous pouvez deviner comment nous avons choisi l'identifiant pour cette div
http-equiv="refresh"
juste au cas où quelque chose ne va pas avec javascript/hoquet de serveur, alors la page rechargera encore sans que vous receviez un appel téléphoniquehttp-equiv
corrige ce problème.Comme la question est générique, essayons de résumer les solutions possibles pour la réponse:
Simple solution JavaScript simple:
Le moyen le plus simple est une solution à une ligne placée de manière appropriée:
location.reload();
Ce qui manque à beaucoup de gens ici, car ils espèrent obtenir quelques "points", c’est que la fonction reload () offre elle-même un booléen en tant que paramètre (détails: https://developer.mozilla.org/en-US/docs/Web/API/Emplacement/reload ).
La méthode Location.reload () recharge la ressource à partir du fichier .__ actuel. URL Son paramètre unique facultatif est un booléen, qui, lorsqu'il est true, la page est toujours rechargée à partir du serveur. Si c'est false ou non spécifié, le navigateur peut recharger la page à partir de son cache.
Cela signifie qu'il y a deux manières:
Solution1: Forcer le rechargement de la page en cours à partir du serveur
location.reload(true);
Solution2: Rechargement depuis le cache ou le serveur (en fonction du navigateur et de votre configuration)
location.reload(false);
location.reload();
Et si vous souhaitez combiner cela avec jQuery lors de l'écoute d'un événement, je vous recommande d'utiliser la méthode ".on ()" au lieu de ".click" ou d'autres wrappers d'événements, par exemple. une solution plus appropriée serait:
$('#reloadIt').on('eventXyZ', function() {
location.reload(true);
});
J'ai trouvé
window.location.href = "";
ou
window.location.href = null;
effectue également un rafraîchissement de la page.
Cela facilite beaucoup le rechargement de la page en supprimant tout hachage . C'est très agréable lorsque j'utilise AngularJS dans le simulateur iOS, de sorte que je n'ai pas à réexécuter l'application.
Vous pouvez utiliser JavaScript location.reload()
, méthode . Cette méthode accepte un paramètre booléen. true
ou false
. Si le paramètre est true
; la page toujours rechargée depuis le serveur. Si c'est false
; qui est le navigateur par défaut ou avec un paramètre vide, rechargez la page à partir de son cache.
Avec le paramètre true
<button type="button" onclick="location.reload(true);">Reload page</button>
Avec le paramètre default
/false
<button type="button" onclick="location.reload();">Reload page</button>
En utilisant jquery
<button id="Reloadpage">Reload page</button>
<script type="text/javascript">
$('#Reloadpage').click(function() {
location.reload();
});
</script>
Vous n'avez pas besoin de rien de jQuery, pour recharger une page à l'aide de JavaScript pur , utilisez simplement la fonction reload sur la propriété location comme ceci:
window.location.reload();
Par défaut, cela rechargera la page en utilisant le cache du navigateur (s'il existe) ...
Si vous souhaitez forcer le rechargement de la page, il suffit de passer une valeur true à la méthode de rechargement 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();
Toutes les réponses ici sont bonnes. Comme la question précise à propos du rechargement de la page avec jquery, je pensais simplement ajouter quelque chose de plus aux futurs lecteurs.
jQuery est une bibliothèque JavaScript multi-plateforme conçue pour simplifier les scripts HTML du côté client.
~ Wikipedia ~
Vous comprendrez donc que la base de jquery ou jquery est basée sur javascript . Donc, aller avec pure javascript est bien meilleur quand il s’agit de choses simples.
Mais si vous avez besoin de jquery solution, en voici une.
$(location).attr('href', '');
Si vous utilisez jQuery et souhaitez actualiser, essayez d’ajouter votre jQuery à une fonction javascript:
Je voulais cacher un iframe d'une page lorsque je cliquais sur un h3
; cela fonctionnait pour moi, mais je ne pouvais pas cliquer sur l'élément qui me permettait d'afficher la iframe
à moins que je ne rafraîchisse le navigateur manuellement ... pas l'idéal .
J'ai essayé ce qui suit:
var hide = () => {
$("#frame").hide();//jQuery
location.reload(true);//javascript
};
Le mélange de javascript simple Jane 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);
Solution Javascript simple:
location = location;
<button onClick="location = location;">Reload</button>
Utilisez onclick="return location.reload();"
dans la balise button.
<button id="refersh-page" name="refersh-page" type="button" onclick="return location.reload();">Refesh Page</button>
utilisation
location.reload();
ou
window.location.reload();
Voici quelques lignes de code que vous pouvez utiliser pour recharger la page en utilisant jQuery .
Il utilise l'encapsuleur jQuery et extrait l'élément dom natif.
Utilisez ceci si vous voulez juste un sentiment jQuery sur votre code et que vous ne vous souciez pas de vitesse/performance du code.
Il suffit de choisir entre 1 et 10 selon vos besoins ou d’en ajouter d’autres en fonction du modèle et des réponses à apporter.
<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>
C'est le plus court en JavaScript.
location = '';
Cela fonctionne pour moi:
document.location.reload();