Como posso atualizar uma página com jQuery?
javascript
jquery
refresh
reload
luca
fonte
fonte
Respostas:
Use
location.reload()
:A
reload()
função usa um parâmetro opcional que pode ser definidotrue
para forçar uma recarga do servidor em vez do cache. O parâmetro é padronizado comofalse
, portanto, por padrão, a página pode ser recarregada do cache do navegador.fonte
window.location.href=window.location.href;
elocation.href=location.href;
trabalhou.window.location.reload(true);
será difícil atualizar, caso contrário, por padrão é falsolocation.reload();
é javascript padrão. Você não precisa do jQuery para isso.Isso deve funcionar em todos os navegadores, mesmo sem o jQuery:
fonte
Existem
váriasmaneiras ilimitadas de atualizar uma página com JavaScript:location.reload()
history.go(0)
location.href = location.href
location.href = location.pathname
location.replace(location.pathname)
location.reload(false)
Você pode continuar a lista sendo criativa:
window.location = window.location
window.self.window.self.window.window.location = window.location
fonte
(reload()/(false))
são mais lentos. hmmm. interessante. :) e 1 e 6 são os mesmos quereload()
o parâmetro padrãofalse
.location.href = location.href
é o que eu costumo usar, mas obrigado pelos outros. Muito útil! +1De várias maneiras, suponho:
window.location.reload();
history.go(0);
window.location.href=window.location.href;
fonte
window.location.href=window.location.href;
vai fazer nada se o seu URL tem um # / hashbang na extremidadeexample.com/something#blah
:location.reload()
ehistory.go(0)
é: não há. A seção relevante da especificação do HTML 5 em w3.org/TR/html5/browsers.html#dom-history-go determina explicitamente que são equivalentes: "Quando ogo(delta)
método é chamado, se o argumento para o método foi omitido ou foi o valor zero, o agente do usuário deve agir como se olocation.reload()
método tivesse sido chamado. "Para recarregar uma página com jQuery, faça:
A abordagem aqui que eu usei foi o Ajax jQuery. Eu testei no Chrome 13. Em seguida, coloquei o código no manipulador que acionará a recarga. O URL é
""
, o que significa esta página .fonte
context
parâmetro$.ajax
e esperando que, de alguma forma, realize algum tipo de mágica. Tudo o que faz é definir othis
valor das funções de retorno de chamada . O Ajax em um URL""
atingirá o URL em que você está atualmente, carregando normalmente o HTML completo (incluindo<html>
e<head>
e<body>
), e nada nesta resposta filtra o que você não deseja.Se a página atual foi carregada por uma solicitação POST, convém usar
ao invés de
porque
window.location.reload()
solicitará confirmação se chamado em uma página que foi carregada por uma solicitação POST.fonte
window.location = window.location
também é imperfeito, no entanto; não faz nada se houver um fragmento (hashbang) no URL atual.A questão deve ser,
Como atualizar uma página com JavaScript
Você é mimado pela escolha.
fonte
Você pode querer usar
forceGet
é um booleano e opcional.O padrão é false, que recarrega a página do cache.
Defina esse parâmetro como true se desejar forçar o navegador a obter a página do servidor e a se livrar do cache também.
Ou apenas
se você quiser rápido e fácil com o cache.
fonte
Três abordagens com diferentes comportamentos relacionados ao cache:
location.reload(true)
Nos navegadores que implementam o
forcedReload
parâmetro delocation.reload()
, recarrega buscando uma nova cópia da página e de todos os seus recursos (scripts, folhas de estilo, imagens etc.). Não servirá nenhum recurso do cache - obtém novas cópias do servidor sem enviar nenhumif-modified-since
ouif-none-match
cabeçalho cabeçalho na solicitação.Equivalente ao usuário fazer uma "recarga forçada" nos navegadores, sempre que possível.
Observe que a passagem
true
paralocation.reload()
é suportada no Firefox (consulte MDN ) e Internet Explorer (consulte MSDN ), mas não é universalmente suportada e não faz parte da especificação W3 HTML 5 , nem da especificação preliminar do W3 HTML 5.1 , nem do WHATWG HTML Living Standard .Em navegadores não compatíveis, como o Google Chrome,
location.reload(true)
se comporta da mesma forma quelocation.reload()
.location.reload()
oulocation.reload(false)
Recarrega a página, buscando uma cópia nova e sem cache do próprio HTML da página e executando solicitações de revalidação da RFC 7234 para quaisquer recursos (como scripts) que o navegador armazenou em cache, mesmo que sejam recentes, caso a RFC 7234 permita que o navegador seja veiculado sem revalidação.
Exatamente como o navegador deve utilizar seu cache ao realizar uma
location.reload()
chamada não está especificado ou documentado, tanto quanto eu sei; Eu determinei o comportamento acima por experimentação.Isso é equivalente ao usuário simplesmente pressionar o botão "atualizar" no navegador.
location = location
(ou infinitamente muitas outras técnicas possíveis que envolvem a atribuição delocation
ou a suas propriedades)Funciona apenas se o URL da página não contiver um fragmento / hashbang!
Recarrega a página sem buscar ou revalidar quaisquer novos recursos do cache. Se o próprio HTML da página for novo, isso recarregará a página sem executar nenhuma solicitação HTTP.
Isso é equivalente (de uma perspectiva de armazenamento em cache) ao usuário que abre a página em uma nova guia.
No entanto, se o URL da página contiver um hash, isso não terá efeito.
Novamente, o comportamento do cache aqui não é especificado, tanto quanto eu sei; Eu determinei isso testando.
Então, em resumo, você deseja usar:
location = location
para uso máximo do cache, desde que a página não tenha um hash em seu URL; nesse caso, isso não funcionarálocation.reload(true)
buscar novas cópias de todos os recursos sem revalidar (embora não seja universalmente suportado e não se comporte de maneira diferentelocation.reload()
em alguns navegadores, como o Chrome)location.reload()
reproduzir fielmente o efeito do usuário clicando no botão 'atualizar'.fonte
location = location
não funciona se houver um hash no URL. Para qualquer site que use fragmentos - ou mesmo para qualquer site em que alguém vinculando a uma página possa adicionar um fragmento ao URL - isso o torna quebrado.window.location.reload()
será recarregado do servidor e carregará todos os seus dados, scripts, imagens etc. novamente.Portanto, se você quiser apenas atualizar o HTML, o
window.location = document.URL
retorno será muito mais rápido e com menos tráfego. Mas não recarregará a página se houver um hash (#) no URL.fonte
location.reload()
força a revalidação de recursos em cache, mesmo sem argumentos, enquantowindow.location = document.URL
fica feliz em servir recursos em cache sem atingir o servidor, desde que estejam atualizados.A
Load
função jQuery também pode executar uma atualização da página:fonte
Como a pergunta é genérica, vamos tentar resumir possíveis soluções para a resposta:
Solução JavaScript simples e simples :
A maneira mais fácil é uma solução de uma linha, colocada de maneira apropriada:
O que muitas pessoas estão faltando aqui, porque esperam obter alguns "pontos", é que a própria função reload () oferece um booleano como parâmetro (detalhes: https://developer.mozilla.org/en-US/docs/Web / API / Location / recarregar ).
Isso significa que existem duas maneiras:
Solução 1: forçar o recarregamento da página atual do servidor
Solution2: Recarregando do cache ou servidor (com base no navegador e na sua configuração)
E se você quiser combiná-lo com o jQuery e ouvir um evento, eu recomendaria usar o método ".on ()" em vez de ".click" ou outros wrappers de eventos, por exemplo, uma solução mais adequada seria:
fonte
Aqui está uma solução que recarrega assincronamente uma página usando jQuery. Evita a cintilação causada por
window.location = window.location
. Este exemplo mostra uma página que é recarregada continuamente, como em um painel. É testado em batalha e está sendo executado em uma TV de exibição de informações na Times Square.Notas:
$.ajax
diretamente como$.get('',function(data){$(document.body).html(data)})
faz com que os arquivos css / js sejam bloqueados pelo cache , mesmo se você usarcache: true
, é por isso que usamosparseHTML
parseHTML
NÃO encontrará umabody
tag para que todo o seu corpo precise participar de uma div extra. Espero que essa pepita de conhecimento o ajude um dia, você pode adivinhar como escolhemos o ID para essediv
http-equiv="refresh"
apenas no caso de algo dar errado com o soluço javascript / servidor, a página AINDA será recarregada sem que você receba uma ligação.http-equiv
atualização corrigefonte
eu encontrei
ou
também atualiza a página.
Isso facilita muito o recarregamento da página, removendo qualquer hash. Isso é muito bom quando estou usando o AngularJS no simulador do iOS, para não precisar executar o aplicativo novamente.
fonte
Você pode usar o método JavaScript
location.reload()
. Este método aceita um parâmetro booleano.true
oufalse
. Se o parâmetro fortrue
; a página sempre recarregada do servidor. Se forfalse
; qual é o padrão ou, com o navegador de parâmetros vazio, recarregue a página do cache.Com
true
parâmetroCom
default
/false
parâmetroUsando jquery
fonte
Você não precisa de nada do jQuery, para recarregar uma página usando JavaScript puro , basta usar a função reload na propriedade location como esta:
Por padrão, isso recarregará a página usando o cache do navegador (se existir) ...
Se você deseja forçar o recarregamento da página, basta passar um valor verdadeiro para recarregar o método como abaixo ...
Além disso, se você já está no escopo da janela , pode se livrar da janela e fazer:
fonte
usar
ou
fonte
Use
onclick="return location.reload();"
dentro da etiqueta do botão.fonte
Se você estiver usando jQuery e quiser atualizar, tente adicionar seu jQuery em uma função javascript:
Eu queria ocultar um iframe de uma página ao clicar em ah
h3
, para mim funcionou, mas não consegui clicar no item que me permitia visualizar oiframe
início, a menos que eu atualizasse o navegador manualmente ... não é o ideal.Eu tentei o seguinte:
A mistura de javascript simples com o jQuery deve funcionar.
fonte
Todas as respostas aqui são boas. Como a pergunta especifica sobre recarregar a página comjquery, Pensei em adicionar algo mais para futuros leitores.
Então você entenderá que o fundamento de jqueryou jquery é baseado em javascript. Então, indo com purajavascript é muito melhor quando se trata de coisas simples.
Mas se você precisar de um jquery solução, aqui está uma.
fonte
Existem várias maneiras de recarregar as páginas atuais, mas, de alguma forma, usando essas abordagens, você pode ver a página atualizada, mas com poucos valores de cache, por isso supere esse problema ou, se desejar fazer solicitações difíceis, use o código abaixo.
fonte
fonte
Solução Javascript Simples:
fonte
Provavelmente o mais curto (12 caracteres) - histórico de uso
fonte
Você pode escrever de duas maneiras. 1º é a maneira padrão de recarregar a página, também chamada de atualização simples
E outro é chamado de atualização completa . Aqui você passa a expressão booleana e a define como verdadeira. Isso recarregará a página destruindo o cache antigo e exibindo o conteúdo do zero.
fonte
É o mais curto em JavaScript.
fonte
fonte
Aqui estão algumas linhas de código que você pode usar para recarregar a página usando o jQuery .
Ele usa o wrapper jQuery e extrai o elemento dom nativo.
Use isso se você quiser apenas uma sensação de jQuery no seu código e não se importar com velocidade / desempenho do código.
Basta escolher de 1 a 10 que atenda às suas necessidades ou adicionar um pouco mais com base no padrão e nas respostas anteriores.
fonte