¿Cómo puedo actualizar una página con jQuery?
javascript
jquery
refresh
reload
luca
fuente
fuente
Respuestas:
Uso
location.reload()
:La
reload()
función toma un parámetro opcional que se puede configurartrue
para forzar una recarga desde el servidor en lugar de la memoria caché. El parámetro predeterminado esfalse
, por lo que, de forma predeterminada, la página puede recargarse desde la memoria caché del navegador.fuente
window.location.href=window.location.href;
ylocation.href=location.href;
trabajadowindow.location.reload(true);
se actualizará porlocation.reload();
es javascript estándar. No necesitas jQuery para ello.Esto debería funcionar en todos los navegadores incluso sin jQuery:
fuente
Hay
variasformas 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)
Puede continuar la lista siendo creativo:
window.location = window.location
window.self.window.self.window.window.location = window.location
fuente
(reload()/(false))
son más lentos. hmmm interesante. :) y 1 y 6 son los mismos quereload()
el parámetro predeterminado defalse
.location.href = location.href
es lo que suelo usar, pero gracias por los demás. ¡Muy útil! +1Muchas maneras funcionarán, supongo:
window.location.reload();
history.go(0);
window.location.href=window.location.href;
fuente
window.location.href=window.location.href;
no hará nada si su URL tiene un # / hashbang al finalexample.com/something#blah
:location.reload()
yhistory.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: "Cuandogo(delta)
se invoca el método, si se omitió el argumento del método el valor cero, el agente de usuario debe actuar como silocation.reload()
se llamara al método en su lugar ".Para volver a cargar una página con jQuery, haga:
El enfoque aquí que usé fue Ajax jQuery. Lo probé en Chrome 13. Luego puse el código en el controlador que activará la recarga. La URL es
""
, lo que significa esta página .fuente
context
parámetro$.ajax
y esperan que de alguna manera realice algún tipo de magia. Todo lo que hace es establecer elthis
valor de las funciones de devolución de llamada . Ajax a una URL de""
golpeará la URL en la que se encuentra actualmente, cargando normalmente el HTML completo (incluyendo<html>
y<head>
y<body>
), y nada en esta respuesta filtra las cosas que no desea.Si la página actual se cargó mediante una solicitud POST, es posible que desee utilizar
en vez de
porque
window.location.reload()
solicitará confirmación si se llama en una página cargada por una solicitud POST.fuente
window.location = window.location
también es imperfecto, sin embargo; no hace nada si hay un fragid (hashbang) en la URL actual.La pregunta debería ser,
Cómo actualizar una página con JavaScript
Tienes muchas opciones para elegir.
fuente
Es posible que desee utilizar
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 también del caché.
O solo
si quieres rápido y fácil con el almacenamiento en caché.
fuente
Tres enfoques con diferentes comportamientos relacionados con el caché:
location.reload(true)
En los navegadores que implementan el
forcedReload
parámetro delocation.reload()
, se vuelve a cargar obteniendo una copia nueva de la página y todos sus recursos (scripts, hojas de estilo, imágenes, etc.). No servirá ningún recurso del caché: obtiene copias nuevas del servidor sin enviar ningunoif-modified-since
oif-none-match
encabezados en la solicitud.Equivalente a que el usuario realice una "recarga dura" en los navegadores donde sea posible.
Tenga en cuenta que pasar
true
alocation.reload()
es compatible con Firefox (consulte MDN ) e Internet Explorer (consulte MSDN ), pero no es compatible universalmente y no forma parte de la especificación W3 HTML 5 , ni de la especificación W3 draft HTML 5.1 , ni del WHATWG HTML Living Standard .En navegadores no compatibles, como Google Chrome, se
location.reload(true)
comporta igual quelocation.reload()
.location.reload()
olocation.reload(false)
Vuelve a cargar la página, ir a buscar un nuevo máximo, sin almacenamiento en caché copia de la propia página HTML, y la realización de RFC 7234 solicitudes de revalidación de los recursos (como guiones) que el navegador se ha almacenado en caché, incluso si son frescas son RFC 7234 permite que el navegador para servir ellos sin revalidación.
Por
location.reload()
lo que puedo decir, no se especifica ni documenta exactamente cómo el navegador debe utilizar su caché cuando realiza una llamada; Determiné el comportamiento anterior por 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 aolocation
a sus propiedades)¡Solo funciona si la URL de la página no contiene un fragid / hashbang!
Vuelve a cargar la página sin re-cargar o revalidar ningún frescas recursos de la caché. Si el HTML de la página en sí es nuevo, esto 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, quieres usar:
location = location
para un uso máximo de la memoria caché, siempre que la página no tenga 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 diferentelocation.reload()
en algunos navegadores, como Chrome)location.reload()
para reproducir fielmente el efecto de que el usuario haga clic en el botón "actualizar".fuente
location = location
no funciona si hay un hash en la URL. Para cualquier sitio que use frágiles, o incluso para cualquier sitio en el que alguien que enlace a una página podría agregar un frágil a la URL, eso hace que se rompa.window.location.reload()
se volverá a cargar desde el servidor y volverá a cargar todos sus datos, scripts, imágenes, etc.Entonces, si solo desea actualizar el HTML,
window.location = document.URL
volverá 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.fuente
location.reload()
fuerza la revalidación de los recursos almacenados en caché, incluso sin argumentos, mientras quewindow.location = document.URL
se complace en servir los recursos almacenados en caché sin llegar al servidor siempre que estén frescos.La
Load
función jQuery también puede realizar una actualización de página:fuente
Como la pregunta es genérica, intentemos resumir las posibles soluciones para la respuesta:
Solución simple de JavaScript simple :
La forma más fácil es una solución de una línea colocada de manera apropiada:
Lo que falta a muchas personas 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 / Ubicación / recarga ).
Esto significa que hay dos formas:
Solución1: forzar la recarga de la página actual desde el servidor
Solución2: recarga desde caché o servidor (según el navegador y su configuración)
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:
fuente
Aquí hay una solución que recarga asincrónicamente una página usando jQuery. Evita el parpadeo causado 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 ejecuta en un televisor con pantalla de información en Times Square.Notas:
$.ajax
directamente como$.get('',function(data){$(document.body).html(data)})
causa que los archivos css / js se rompan en caché , incluso si los usacache: true
, por eso usamosparseHTML
parseHTML
NO encontrará unabody
etiqueta, por lo que todo su cuerpo necesita ir a un div adicional, espero que esta pepita de conocimiento lo ayude algún día, puede adivinar cómo elegimos la identificación para esodiv
http-equiv="refresh"
en caso de que algo salga mal con el problema de JavaScript / servidor, entonces la página TODAVÍA se volverá a cargar sin que reciba una llamada telefónicahttp-equiv
actualización corrige quefuente
encontré
o
También hace que una página se actualice.
Esto hace que sea mucho más fácil recargar 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.
fuente
Puedes usar el método JavaScript
location.reload()
. Este método acepta un parámetro booleano.true
ofalse
. Si el parámetro estrue
; la página siempre se recarga desde el servidor. Si se tratafalse
; que es el valor predeterminado o con el navegador de parámetros vacío, vuelva a cargar la página desde su caché.Con
true
parámetroCon
default
/false
parámetroUsando jquery
fuente
No necesita nada de jQuery, para recargar una página usando JavaScript puro , solo use la función de recarga en una propiedad de ubicación como esta:
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 valor verdadero al método de recarga como se muestra a continuación ...
Además, si ya está en el alcance de la ventana , puede deshacerse de la ventana y hacer:
fuente
utilizar
o
fuente
Usar
onclick="return location.reload();"
dentro de la etiqueta del botón.fuente
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 an
h3
, para mí funcionó, pero no pude hacer clic en el elemento que me permitía ver eliframe
comienzo, a menos que actualizara el navegador manualmente ... no es lo ideal.Intenté lo siguiente:
Mezclar javascript javascript simple con tu jQuery debería funcionar.
fuente
Todas las respuestas aquí son buenas. Como la pregunta especifica sobre la recarga de la página conjquery, Solo pensé en agregar algo más para futuros lectores.
Entonces entenderás que la base de jqueryo jquery está basado en javascript. Entonces yendo con purojavascript es mucho mejor cuando se trata de cosas simples.
Pero si necesitas un jquery solución, aquí hay uno.
fuente
Hay muchas maneras de volver a cargar las páginas actuales, pero de alguna manera usando esos enfoques, puede ver la página actualizada, pero no con pocos valores de caché, así que supere ese problema o si desea hacer solicitudes difíciles, utilice el siguiente código.
fuente
fuente
Solución Javascript simple:
fuente
Probablemente el más corto (12 caracteres): use el historial
fuente
Puedes escribirlo de dos maneras. 1st es la forma estándar de volver a cargar la página, también llamada actualización simple
Y otro se llama la actualización dura . Aquí pasa la expresión booleana y la establece en verdadero. Esto volverá a cargar la página destruyendo el caché anterior y mostrando el contenido desde cero.
fuente
Es más corto en JavaScript.
fuente
fuente
Aquí hay algunas líneas de código que puede usar para recargar la página usando jQuery .
Utiliza el contenedor jQuery y extrae el elemento dom nativo.
Use esto si solo desea una sensación de jQuery en su código y no le importa la velocidad / rendimiento del código.
Simplemente elija del 1 al 10 que se adapte a sus necesidades o agregue un poco más según el patrón y las respuestas antes de esto.
fuente