Se bem me lembro, window.location.reload()
recarrega a página atual com dados POST, enquantowindow.location.href=window.location.href
não inclui os dados do POST.
Conforme observado por @ W3Max nos comentários abaixo, window.location.href=window.location.href
não recarregará a página se houver uma âncora (#) na URL - você deve usarwindow.location.reload()
neste caso.
Além disso, conforme observado por @Mic abaixo, window.location.reload()
é usado um argumento adicional skipCache
para que, com o uso window.location.reload(true)
do navegador, pule o cache e recarregue a página do servidor. window.location.reload(false)
fará o oposto e carregará a página do cache, se possível.
Se você disser que
window.location.reload(true)
o navegador ignorará o cache e recarregará a página do servidor.window.location.reload(false)
fará o oposto.Nota: o
default
valor parawindow.location.reload()
éfalse
fonte
window.location.href = window.location.href
o truque.location.reload()
oulocation.reload(false)
. Para fazer uma atualização completa da página, uselocation.reload(true)
.A diferença é que
não recarregará a página se houver um hash (#) no URL (com ou sem algo após), enquanto
recarregará a página.
fonte
location.href = location.href
como certo, mas eu apenas notei esse comportamento exato e vim para o SO para espalhar a palavra. Basta usarlocation.reload()
.window.location.replace(window.location.pathname);
Se você adicionar o valor booleano true ao recarregamento,
window.location.reload(true)
ele será carregado do servidor.Não está claro o quão suportado é esse booleano, o W3Org menciona que o NS usou para suportar lo
Pode haver uma diferença entre o conteúdo de window.location.href e document.URL - há, pelo menos, costumava ser uma diferença entre location.href eo não-padrão e obsoleto document.location que tinha a ver com o redirecionamento, mas que é realmente o último milênio.
Para fins de documentação, eu usaria window.location.reload () porque é isso que você deseja fazer.
fonte
Como dito, modificar o href quando houver um hash (#) no URL não recarregará a página. Assim, eu uso isso para recarregá-lo em vez de expressões regulares:
fonte
Deparei-me com essa questão pesquisando algum comportamento aberrante no IE, especificamente no IE9, não verificou versões mais antigas. Parece
resulta em uma atualização que apaga a tela inteira por um segundo, onde
atualiza a página muito mais rapidamente, quase imperceptivelmente.
Fazendo um pouco mais de pesquisa e algumas experiências com o violinista, parece que
window.location.reload()
ele ignorará o cache e será recarregado do servidor, independentemente de você passar o booleano com ele ou não, isso inclui obter todos os seus ativos (imagens, scripts, folhas de estilo, etc) novamente. Portanto, se você quiser que a página atualize o HTML,window.location = document.URL
ela retornará muito mais rápido e com menos tráfego.Uma diferença de comportamento entre os navegadores é que, quando o IE9 usa o método recarregar, ele limpa a página visível e a reconstrói aparentemente do zero, onde o FF e o chrome esperam até que eles obtenham os novos ativos e os reconstruam se forem diferentes.
fonte
Uma diferença no Firefox (12.0) é que, em uma página renderizada a partir de um POST, reload () exibirá um aviso e fará uma nova publicação, enquanto uma atribuição de URL fará um GET.
O Google Chrome faz um GET para ambos.
fonte
Usando o JSF, agora estou tendo o problema de atualização após o término da sessão: PrimeFaces ViewExpiredException após o recarregamento da página e, com alguma investigação, encontrei uma diferença no FireFox:
Chamar
window.location.reload()
funciona como clicar no ícone de atualização no FF, adiciona a linhaCache-Control max-age=0
enquanto a configuração
window.location.href
funciona como pressionar ENTER na linha da URL, ela não envia essa linha.Embora ambos sejam enviados como GET, o primeiro (recarregar) está restaurando os dados anteriores e o aplicativo está em estado inconsistente.
fonte
Não, não deveria haver. No entanto, é possível que haja diferenças em alguns navegadores, portanto (ou nenhum) pode não funcionar em alguns casos.
fonte
da minha experiência de cerca de 3 anos, não encontrei nenhuma diferença ...
edit: sim, como um deles disse aqui, apenas passar um parâmetro booleano para window.location.reload () é a diferença. se você passar true , o navegador carrega uma página nova, mas se false , a versão do cache é carregada ...
fonte
No nosso caso, queremos apenas recarregar a página na visualização na web e, por alguns motivos, não conseguimos descobrir o porquê! Tentamos quase todas as soluções que estiveram na Web, mas continuamos sem recarregar usando location.reload () ou soluções alternativas como window.location.reload (), location.reload (true), ...!
Aqui está a nossa solução simples:
Basta usar uma tag <a> com o valor de atribuição "href" vazio como este:
(em alguns casos, você deve usar "return true" no clique do destino para ativar a recarga)
Para mais informações, consulte esta pergunta: Um href vazio é válido?
fonte
window.location.href, isso salvou minha vida na webview do Android 5.1. A página não é recarregada com location.reload () nesta versão do Android.
fonte