¿Cómo puedo actualizar una página con jQuery?
¿Cómo puedo actualizar una página con jQuery?
Utilizar location.reload()
:
$('#something').click(function() {
location.reload();
});
los reload()
función toma un parámetro opcional que se puede configurar para true
forzar una recarga desde el servidor en lugar de la caché. El parámetro está predeterminado false
, por lo que de forma predeterminada, la página puede volver a cargarse desde el caché del navegador.
Esto debería funcionar en todos los navegadores incluso sin jQuery:
location.reload();
Existen múltiple formas ilimitadas de actualizar una página con JavaScript:
location.reload()
history.go(0)
location.href = location.href
location.href = location.pathname
location.replace(location.pathname)
location.reload(false)
Si necesitábamos sacar el documento de el servidor web nuevamente (por ejemplo, donde el contenido del documento cambiar dinámicamente) pasaríamos el argumento como
true
.
Puede continuar la lista siendo creativa:
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>
Muchas formas funcionarán, supongo:
window.location.reload();
history.go(0);
window.location.href=window.location.href;
Para volver a cargar una página con jQuery, hazlo:
$.ajax({
url: "",
context: document.body,
success: function(s,x){
$(this).html(s);
}
});
El enfoque que utilicé aquí fue Ajax jQuery. Lo probé en Cromo 13. Luego coloco el código en el controlador que disparará la recarga. los URL es ""
, lo que significa esta página.
Si la página actual fue cargada por una solicitud POST, es posible que desee utilizar
window.location = window.location.pathname;
en lugar de
window.location.reload();
porque window.location.reload()
pedirá la confirmación si se invoca en una página cargada por una solicitud POST.
La pregunta debería ser,
Cómo actualizar una página con JavaScript
window.location.href = window.location.href; //This is a possibility
window.location.reload(); //Another possiblity
history.go(0); //And another
Tienes donde elegir.
Es posible que desee utilizar
location.reload(forceGet)
forceGet
es un booleano y opcional.
El valor predeterminado es falso, que vuelve a cargar la página desde la memoria caché.
Establezca este parámetro en verdadero si desea obligar al navegador a obtener la página del servidor para deshacerse también de la memoria caché.
O solo
location.reload()
si quieres de forma rápida y fácil con el almacenamiento en caché.
Tres enfoques con diferentes comportamientos relacionados con el caché:
location.reload(true)
En los navegadores que implementan el forcedReload
parámetro de location.reload()
, vuelve a cargarse obteniendo una copia nueva de la página y todos sus recursos (scripts, hojas de estilo, imágenes, etc.). No servirá alguna recursos del caché: obtiene copias nuevas del servidor sin enviar ninguna if-modified-since
o if-none-match
encabezados en la solicitud.
Equivalente a que el usuario haga una "recarga dura" en los navegadores donde sea posible.
Tenga en cuenta que pasar true
a location.reload()
es compatible con Firefox (ver MDN) e Internet Explorer (ver MSDN) pero no es compatible universalmente y no es parte de la especificación W3 HTML 5, ni el borrador W3 de la especificación HTML 5.1, ni el estándar de vida WHATWG HTML.
En navegadores no compatibles, como Google Chrome, location.reload(true)
se comporta igual que location.reload()
.
location.reload()
o location.reload(false)
Recarga la página, obteniendo una copia nueva, no almacenada en caché del HTML de la página, y realizando RFC 7234 solicitudes de revalidación de cualquier recurso (como scripts) que el navegador haya almacenado en caché incluso si son Fresco son RFC 7234 permite que el navegador los sirva sin revalidación.
Exactamente cómo el navegador debe utilizar su caché al realizar un location.reload()
la llamada no está especificada o documentada por lo que puedo decir; Yo determiné el comportamiento anterior mediante la experimentación.
Esto es equivalente a que el usuario simplemente presione el botón "actualizar" en su navegador.
location = location
(o infinitamente muchas otras técnicas posibles que implican asignar a location
o a sus propiedades)¡Solo funciona si la URL de la página no contiene un fragid / hashbang!
Recarga la página sin reutilizar o revalidar alguna Fresco recursos del caché. Si el propio HTML de la página es nuevo, volverá a cargar la página sin realizar ninguna solicitud HTTP.
Esto es equivalente (desde una perspectiva de almacenamiento en caché) al usuario que abre la página en una pestaña nueva.
Sin embargo, si la URL de la página contiene un hash, esto no tendrá efecto.
Una vez más, el comportamiento de almacenamiento en caché aquí no está especificado, por lo que sé; Lo determiné probando.
Entonces, en resumen, quieres usar:
location = location
para el uso máximo de la memoria caché, Mientras la página no tiene un hash en su URL, en cuyo caso esto no funcionarálocation.reload(true)
para obtener nuevas copias de todos los recursos sin revalidar (aunque no es universalmente compatible y se comportará de manera diferente a location.reload()
en algunos navegadores, como Chrome)location.reload()
para reproducir fielmente el efecto del usuario haciendo clic en el botón 'actualizar'.window.location.reload()
volverá a cargar desde el servidor y cargará todos sus datos, secuencias de comandos, imágenes, etc. de nuevo.
Entonces, si solo quieres actualizar el HTML, window.location = document.URL
regresará mucho más rápido y con menos tráfico. Pero no volverá a cargar la página si hay un hash (#) en la URL.