¿Cómo puedo actualizar una página con jQuery?

¿Cómo puedo actualizar una página con jQuery?

preguntado el 23 de marzo de 11 a las 08:03

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. -

No necesitas jQuery para esto. -

Más relevante que nunca: needmorejquery.com -

@Stardust No necesitas jQuery para nada de lo que haces con jQuery debido a todo lo posible con JavaScript si puedes hacerlo con jQuery. -

30 Respuestas

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

Existen múltiples formas ilimitadas de actualizar una página con JavaScript:

  1. location.reload()
  2. history.go(0)
  3. location.href = location.href
  4. location.href = location.pathname
  5. location.replace(location.pathname)
  6. 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

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

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

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

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

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

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

Tres enfoques con diferentes comportamientos relacionados con la caché:

  • location.reload(true)

    En los navegadores que implementan la forcedReload parámetro de location.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ún if-modified-since or if-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 a location.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 que location.reload().

  • location.reload() or location.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 a location 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 a location.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

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

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

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

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 usa cache: true, es por eso que usamos parseHTML
  • parseHTML NO encontrará un body 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 eso div
  • 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

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

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

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

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

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

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

Todas las respuestas aquí son buenas. Dado que la pregunta especifica sobre la recarga de la página con , 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 o está basado en . Así que yendo con puro es mucho mejor cuando se trata de cosas simples.

Pero si necesitas un solución, aquí hay una.

$(location).attr('href', '');

Respondido el 20 de junio de 20 a las 10:06

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

<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

Solución simple de Javascript:

 location = location; 

<button onClick="location = location;">Reload</button>

Respondido 10 Jul 18, 19:07

Probablemente el más corto (12 caracteres): use historia

history.go()

Respondido 28 Oct 19, 08:10

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

$(document).on("click", "#refresh_btn", function(event) 
{
     window.location.replace(window.location.href);
});

respondido 05 mar '20, 08:03

Es el más corto en JavaScript.

window.location = '';

respondido 28 nov., 19:09

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

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

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 or haz tu propia pregunta.