¿Cómo puedo actualizar una página con jQuery?
Frecuentes
Visto 2,697 veces
30 Respuestas
3988
Utilice la herramienta location.reload()
:
$('#something').click(function() {
location.reload();
});
EL reload()
La función toma un parámetro opcional que se puede establecer en true
para forzar una recarga desde el servidor en lugar de desde la caché. El parámetro predeterminado es false
, por lo que, de forma predeterminada, la página puede volver a cargarse desde la memoria caché del navegador.
Respondido 19 Oct 15, 21:10
Esto no funcionó para mí. Sin embargo, esto funcionó: window.location.href = window.location.href; - Yster
Esto no funcionó para mí. window.location.href=window.location.href;
y location.href=location.href;
trabajó. - twharmon
window.location.reload(true);
se actualizará de forma dura, de lo contrario, por defecto es falso - sagar naliyapara
@Sagar N, esto también funciona para mí. Gracias. Lo intenté los últimos días con un enfoque diferente, pero su solución me salvó. - ludus h
@FaridAbbas location.reload();
es javascript estándar. No necesitas jQuery para eso. - Marcos Baijens
478
Existen múltiples 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 tuviéramos que sacar el documento del servidor web nuevamente (como cuando el contenido del documento cambia dinámicamente) pasaríamos el argumento como
true
.
Puedes seguir la lista siendo creativo:
window.location = window.location
window.self.window.self.window.window.location = window.location
- ... y otras 534 formas
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>
Respondido 03 Feb 19, 05:02
+1 para la lista y jsfiddle. Tengo una pregunta, en jsfiddle 1 y 6 hacen que la página generada desaparezca por un momento mientras se recarga, y 2-5 hacen que la recarga de la página sea "imperceptible". En la herramienta de desarrollo en Chrome, puedo ver que la página se regenera, pero ¿podría explicar que el proceso de redibujo es diferente? Por favor. Gracias de antemano. - Cԃ ա ԃ
@ Cԃ ա ԃ No veo ninguna diferencia ... ¿Quizás el caché es el problema? Pronto echaré un vistazo. - Ionică Bizău
1 y 6 (reload()/(false))
son más lentos. mmm. interesante. :) y 1 y 6 son lo mismo que reload()
El parámetro predeterminado es false
. - Cԃ ա ԃ
location.href = location.href
es lo que suelo usar, pero gracias por los demás. ¡Muy útil! +1 - Amal Murali
@ Cԃ ա ԃ Finalmente puedo reproducir lo que ves y pregunté aquí. - Ionică Bizău
465
Esto debería funcionar en todos los navegadores incluso sin jQuery:
location.reload();
Respondido el 14 de enero de 17 a las 16:01
Si se pregunta qué tan bien respaldado está esto exactamente, aquí está el ¿Puedo usar? - Un amigo
208
Muchas formas funcionarán, supongo:
window.location.reload();
history.go(0);
window.location.href=window.location.href;
Respondido 29 ago 12, 09:08
Este window.location.href=window.location.href;
hará nada si su URL tiene un # / hashbang al final example.com/something#blah
: - AaronLS
En caso de que alguien se pregunte cuál es la diferencia entre location.reload()
y history.go(0)
es: no hay ninguno. La sección relevante de la especificación HTML 5 en w3.org/TR/html5/browsers.html#dom-history-go dicta explícitamente que son equivalentes: "Cuando el go(delta)
se invoca el método, si el argumento del método se omitió o tiene el valor cero, el agente de usuario debe actuar como si el location.reload()
en su lugar se llamó al método ". - marca amery
El único que funcionó para mí fue este: window.location.href = window.location.href; - Yster
window.location.href = window.location.href funcionó para mí - Rohit Singh
124
Para recargar una página con jQuery, haz lo siguiente:
$.ajax({
url: "",
context: document.body,
success: function(s,x){
$(this).html(s);
}
});
El enfoque aquí que utilicé fue Ajax jQuery. Lo probé en Chrome 13. Luego pongo el código en el controlador que activará la recarga. La Enlance is ""
, lo que significa esta página.
Respondido el 14 de Septiembre de 15 a las 14:09
Votación en contra. Esto realmente no responde a la pregunta, sino que muestra cómo reemplazar el HTML de la página con una respuesta Ajax. Eso es diferente de recargar la página: por ejemplo, estoy trabajando con una situación en este momento en la que esto no funcionaría para resolver el problema original. - Marnen Laibow-Koser
Un problema con la recarga de todo el HTML de esta manera es tener que llamar manualmente a los eventos onload / ready y mitigar la sobrescritura de las variables declaradas previamente cuyo estado es posible que desee conservar después de la actualización. - PaseKit
A menos que tenga mucho cuidado con su código, esto seguirá conducir a pérdidas de memoria donde ha adjuntado controladores de eventos y demás sin separarlos antes de reemplazar el código al que están adjuntos. - Daniel Llewellyn
Estoy usando esto para recargar nuestro tablero cada segundo, ¡sin parpadeo! Es la api cometa / json del pobre hombre. Gracias a @DanielLlewellyn et al. para las advertencias. - Guillermo Entriken
Algunas personas han comentado que este enfoque es útil para actualizar solo una parte de la página. No lo es. Creo que esa gente está malinterpretando el context
parámetro de $.ajax
y esperando que de alguna manera realice algún tipo de magia. Todo lo que hace es establecer el this
valor de las funciones de devolución de llamada. Ajax a una URL de ""
llegará a la URL en la que se encuentra actualmente, por lo que normalmente carga el HTML completo (incluido <html>
y <head>
y <body>
), y nada en esta respuesta filtra las cosas que no desea. - marca amery
109
Si la página actual se cargó mediante una solicitud POST, es posible que desee utilizar
window.location = window.location.pathname;
en lugar de
window.location.reload();
porque window.location.reload()
solicitará confirmación si se llama en una página que se cargó mediante una solicitud POST.
Respondido 19 Oct 15, 22:10
Sin embargo, esto perderá la cadena de consulta, mientras que window.location = window.location no lo hará: mrmillsy
@mrmillsy window.location = window.location
sin embargo, también es imperfecto; no hace nada si hay un fragid (hashbang) en la URL actual. - marca amery
65
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
Tiene muchas opciones para elegir.
Respondido 10 ago 13, 09:08
56
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 el caché.
Establezca este parámetro en verdadero si desea forzar al navegador a obtener la página del servidor para deshacerse de la caché también.
O solo
location.reload()
si lo desea de forma rápida y sencilla con el almacenamiento en caché.
Respondido el 14 de enero de 17 a las 16:01
41
Tres enfoques con diferentes comportamientos relacionados con la caché:
location.reload(true)
En los navegadores que implementan la
forcedReload
parámetro delocation.reload()
, se recarga obteniendo una copia nueva de la página y todos sus recursos (scripts, hojas de estilo, imágenes, etc.). No servirá cualquier recursos de la caché: obtiene copias nuevas del servidor sin enviar ningúnif-modified-since
orif-none-match
encabezados en la solicitud.Equivalente a que el usuario realice una "recarga completa" en los navegadores cuando sea posible.
Tenga en cuenta que pasando
true
alocation.reload()
es compatible con Firefox (consulte DND) e Internet Explorer (consulte MSDN) pero no es compatible de forma universal y no forma parte de la especificación W3 HTML 5, ni la especificación W3 draft HTML 5.1, ni el estándar de vida HTML de WHATWG.En navegadores no compatibles, como Google Chrome,
location.reload(true)
se comporta igual quelocation.reload()
.location.reload()
orlocation.reload(false)
Vuelve a cargar la página, recupera una copia nueva y no almacenada en caché del propio HTML de la página y realiza RFC 7234 solicitudes de revalidación para cualquier recurso (como scripts) que el navegador haya almacenado en caché, incluso si son fresco RFC 7234 permite que el navegador los sirva sin revalidación.
Exactamente cómo el navegador debe utilizar su caché al realizar una
location.reload()
la llamada no está especificada ni documentada hasta donde yo sé; Determiné el comportamiento anterior mediante experimentación.Esto es equivalente a que el usuario simplemente presione el botón "actualizar" en su navegador.
location = location
(o infinitas otras técnicas posibles que implican asignar alocation
oa sus propiedades)¡Solo funciona si la URL de la página no contiene un fragid / hashbang!
Vuelve a cargar la página sin volver a obtener ni revalidar cualquier fresco recursos de la caché. Si el HTML de la página es nuevo, se volverá a cargar la página sin realizar ninguna solicitud HTTP.
Esto es equivalente (desde una perspectiva de almacenamiento en caché) a que el usuario abra la página en una nueva pestaña.
Sin embargo, si la URL de la página contiene un hash, esto no tendrá ningún efecto.
Una vez más, el comportamiento de almacenamiento en caché aquí no está especificado hasta donde yo sé; Lo determiné probando.
Entonces, en resumen, desea usar:
location = location
para un uso máximo de la caché, siempre que 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 no se comportará de manera diferente alocation.reload()
en algunos navegadores, como Chrome)location.reload()
para reproducir fielmente el efecto del usuario al hacer clic en el botón "actualizar".
respondido 08 nov., 19:10
+1 para ubicación = ubicación; no mucha gente parece sugerirlo, aunque es más corto que la mayoría de las respuestas proporcionadas, el único inconveniente es su legibilidad, supongo, mientras que location.reload () es un poco más semántico. brandito
@Brandito Más importante aún, location = location
no funciona si hay un hash en la URL. Para cualquier sitio que use fragids, o incluso para cualquier sitio donde alguien que se vincule a una página posiblemente agregue un fragid a la URL, eso lo hace roto. - marca amery
26
window.location.reload()
se recargará desde el servidor y volverá a cargar todos sus datos, scripts, imágenes, etc.
Entonces, si solo desea actualizar el HTML, el 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.
Respondido el 14 de enero de 17 a las 16:01
Este comportamiento es cierto en Chrome, al menos: location.reload()
fuerza la revalidación de los recursos almacenados en caché, incluso sin argumentos, mientras window.location = document.URL
se complace en ofrecer recursos almacenados en caché sin afectar al servidor, siempre que estén actualizados. - marca amery
17
El jQuery Load
La función también puede realizar una actualización de página:
$('body').load('views/file.html', function () {
$(this).fadeIn(5000);
});
Respondido 10 ago 13, 09:08
No, esto no es una actualización de página. - marca amery
16
Como la pregunta es genérica, intentemos resumir las posibles soluciones para la respuesta:
Solución simple de JavaScript simple:
La forma más sencilla es una solución de una línea colocada de forma adecuada:
location.reload();
Lo que muchas personas se pierden aquí, porque esperan obtener algunos "puntos" es que la función reload () en sí misma ofrece un booleano como parámetro (detalles: https://developer.mozilla.org/en-US/docs/Web/API/Location/reload).
El método Location.reload () recarga el recurso desde la URL actual. Su parámetro único opcional es un booleano que, cuando es verdadero, hace que la página siempre se vuelva a cargar desde el servidor. Si es falso o no se especifica, el navegador puede volver a cargar la página desde su caché.
Esto significa que hay dos formas:
Solución 1: Forzar la recarga de la página actual desde el servidor
location.reload(true);
Solución 2: Recarga desde caché o servidor (según el navegador y su configuración)
location.reload(false);
location.reload();
Y si desea combinarlo con jQuery y escuchar un evento, recomendaría usar el método ".on ()" en lugar de ".click" u otros contenedores de eventos, por ejemplo, una solución más adecuada sería:
$('#reloadIt').on('eventXyZ', function() {
location.reload(true);
});
Respondido 02 Oct 15, 10:10
15
Aquí hay una solución que recarga asincrónicamente una página usando jQuery. Evita el parpadeo provocado por window.location = window.location
. Este ejemplo muestra una página que se recarga continuamente, como en un tablero. Está probado en batalla y se está ejecutando en un televisor con pantalla de información en 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>
Notas
- Usar
$.ajax
directamente como$.get('',function(data){$(document.body).html(data)})
hace que los archivos css / js se rompan en caché, incluso si usacache: true
, es por eso que usamosparseHTML
parseHTML
NO encontrará unbody
etiqueta así que todo tu cuerpo necesita ir en un div adicional, espero que esta pepita de conocimiento te ayude algún día, puedes adivinar cómo elegimos la identificación para esodiv
- Utilice la herramienta
http-equiv="refresh"
en caso de que algo salga mal con javascript / error del servidor, la página TODAVÍA se recargará sin que reciba una llamada telefónica - Este enfoque probablemente pierde memoria de alguna manera, el
http-equiv
actualizar corrige eso
contestado el 17 de mayo de 16 a las 23:05
14
Encontré
window.location.href = "";
or
window.location.href = null;
también hace una actualización de la página.
Esto hace que sea mucho más fácil volver a cargar la página eliminando cualquier hash. Esto es muy bueno cuando estoy usando AngularJS en el simulador de iOS, por lo que no tengo que volver a ejecutar la aplicación.
Respondido el 14 de enero de 17 a las 16:01
buen rodaje, no era consciente de eso. - junaid atari
9
Puedes usar JavaScript location.reload()
método. Este método acepta un parámetro booleano. true
or false
. Si el parámetro es true
; la página siempre se recarga desde el servidor. Si esto es false
; que es el predeterminado o con el navegador de parámetros vacío recarga la página desde su caché.
Con true
parámetro
<button type="button" onclick="location.reload(true);">Reload page</button>
Con default
/ false
parámetro
<button type="button" onclick="location.reload();">Reload page</button>
Usando jquery
<button id="Reloadpage">Reload page</button>
<script type="text/javascript">
$('#Reloadpage').click(function() {
location.reload();
});
</script>
respondido 06 mar '18, 10:03
8
Usted no necesito cualquier cosa desde jQuery, para recargar una página usando JavaScript puro, solo use la función de recarga en la propiedad de ubicación como esta:
window.location.reload();
De forma predeterminada, esto volverá a cargar la página utilizando el caché del navegador (si existe) ...
Si desea forzar la recarga de la página, simplemente pase un verdadero valor para recargar el método como a continuación ...
window.location.reload(true);
Además si ya estás en alcance de la ventana, puede deshacerse de la ventana y hacer:
location.reload();
contestado el 27 de mayo de 18 a las 05:05
8
utilizan el
location.reload();
or
window.location.reload();
Respondido 04 Feb 19, 14:02
OP mencionó específicamente "con jQuery" (aunque, como ya han señalado muchos, esto tal vez debe no ser una pregunta de jQuery) - RomainValeri
3
Utilice la herramienta onclick="return location.reload();"
dentro de la etiqueta del botón.
<button id="refersh-page" name="refersh-page" type="button" onclick="return location.reload();">Refesh Page</button>
contestado el 23 de mayo de 18 a las 11:05
3
Si está utilizando jQuery y desea actualizar, intente agregar su jQuery en una función de javascript:
Quería ocultar un iframe de una página al hacer clic en oh un h3
, para mí funcionó, pero no pude hacer clic en el elemento que me permitió ver el iframe
para empezar, a menos que actualice el navegador manualmente ... no es lo ideal.
He probado lo siguiente:
var hide = () => {
$("#frame").hide();//jQuery
location.reload(true);//javascript
};
La combinación de javascript simple de Jane con su jQuery debería funcionar.
// 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);
Respondido 25 Jul 18, 08:07
3
Todas las respuestas aquí son buenas. Dado que la pregunta especifica sobre la recarga de la página con jQuery, Solo pensé en agregar algo más para futuros lectores.
jQuery es una plataforma multiplataforma Biblioteca de JavaScript diseñado para simplificar las secuencias de comandos del lado del cliente de HTML.
~ Wikipedia ~
Entonces entenderás que la base de jQueryo jQuery está basado en javascript. Así que yendo con puro javascript es mucho mejor cuando se trata de cosas simples.
Pero si necesitas un jQuery solución, aquí hay una.
$(location).attr('href', '');
Respondido el 20 de junio de 20 a las 10:06
3
Hay muchas formas de recargar las páginas actuales, pero de alguna manera usando esos enfoques puede ver la página actualizada, pero no con pocos valores de caché estará allí, así que supere ese problema o si desea realizar solicitudes difíciles, use el siguiente código.
location.reload(true);
//Here, it will make a hard request or reload the current page and clear the cache as well.
location.reload(false); OR location.reload();
//It can be reload the page with cache
Respondido el 17 de Septiembre de 19 a las 11:09
2
<i id="refresh" class="fa fa-refresh" aria-hidden="true"></i>
<script>
$(document).on('click','#refresh',function(){
location.reload(true);
});
</script>
respondido 28 nov., 19:13
1
Solución simple de Javascript:
location = location;
<button onClick="location = location;">Reload</button>
Respondido 10 Jul 18, 19:07
1
Probablemente el más corto (12 caracteres): use historia
history.go()
Respondido 28 Oct 19, 08:10
1
Puedes escribirlo de dos formas. Primero es la forma estándar de recargar la página también llamada como actualización simple
location.reload(); //simple refresh
Y otro se llama actualización dura. Aquí pasa la expresión booleana y la establece en verdadero. Esto recargará la página destruyendo el caché anterior y mostrando el contenido desde cero.
location.reload(true);//hard refresh
respondido 19 nov., 19:08
Las respuestas de solo código generalmente están mal vistas en este sitio. ¿Podría editar su respuesta para incluir algunos comentarios o una explicación de su código? Las explicaciones deben responder preguntas como: ¿Qué hace? ¿Cómo lo hace? ¿A dónde va? ¿Cómo resuelve el problema de OP? Ver: Cómo responder. ¡Gracias! - Eduardo Baitello
1
$(document).on("click", "#refresh_btn", function(event)
{
window.location.replace(window.location.href);
});
respondido 05 mar '20, 08:03
0
Es el más corto en JavaScript.
window.location = '';
respondido 28 nov., 19:09
0
Todos ustedes pueden necesitar usar
location.reload(forceGet)
forceGet
es un booleano y opcional.
El valor predeterminado es falso, que vuelve a cargar la página del caché.
Respondido 25 Abr '21, 18:04
0
puede que necesites usar
location.reload()
o también puede necesitar usar
location.reload(forceGet)
forceGet
es un booleano y opcional.
Establezca este parámetro en verdadero si desea forzar al navegador a tomar la página del servidor para deshacerse del caché también.
Respondido 25 Abr '21, 18:04
-1
Aquí hay algunas líneas de código que puede usar para volver a cargar la página. usando jQuery.
Utiliza el contenedor jQuery y extrae el elemento dom nativo.
Use esto si solo quiere un jQuery sentimiento en tu código y no te importa velocidad / rendimiento del código.
Simplemente elija del 1 al 10 que se adapte a sus necesidades o agregue algunos más según el patrón y las respuestas anteriores.
<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>
Respondido el 19 de Septiembre de 18 a las 07:09
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript jquery refresh reload or haz tu propia pregunta.
Dado que jQuery es un marco de javascript para facilitar la manipulación de DOM y el enlace de eventos, le recomendaría que solicite javascript en lugar de jQuery. - WΩLLE - ˈvɔlə
No necesitas jQuery para esto. - Stardust
Más relevante que nunca: needmorejquery.com - Kartik Chugh
@Stardust No necesitas jQuery para nada de lo que haces con jQuery debido a todo lo posible con JavaScript si puedes hacerlo con jQuery. - I am the Most Stupid Person