Pressionar “F5” e pressionar “ENTER” quando o foco estiver na barra de endereços tem o mesmo efeito?

6

Essas duas coisas fazem exatamente a mesma coisa?:

  1. Pressionando a tecla F5
  2. Clicando na barra de endereço (dando foco a ela), então pressionando a tecla ENTER

Estou perguntando por que o primeiro método leva mais tempo para atualizar a página no Chrome. Pelo contrário, no Firefox, o primeiro método leva menos tempo para atualizar a página.

Responda pelas versões mais recentes do Mozilla Firefox e do Google Chrome.

    
por hkBattousai 17.02.2013 / 09:59

2 respostas

5
  1. F5 (Recarregar / Atualizar) reenvia a solicitação atual, incluindo qualquer dado do POST (formulário enviado). O cache do navegador será usado.

  2. Pressionar ENTER na barra de endereço faz uma nova solicitação para aquela URL. Dados de formulário não são reenviados. O cache do navegador será usado.

Não sei por que há uma diferença de desempenho entre o Chrome e o Firefox com esses dois métodos. Eu suspeito que isso se deva a diferenças em seus mecanismos de cache.

    
por 17.02.2013 / 11:37
2

Embora a declaração do w3d de que tanto o F5 quanto o enter usem o cache seja tecnicamente verdadeira, ele é enganoso. O diabo está nos detalhes.

Ao pressionar enter, o navegador pode carregar quaisquer recursos do cache sem reverificá-los, dependendo do tempo de expiração (http Expires header) e outros cabeçalhos http. Isso significa que a maioria dos recursos pode ser carregada com a rapidez com que o disco ou a RAM pode responder, potencialmente menos de 1 ms, se o recurso estiver na RAM.

Pressionar F5, por outro lado, sempre enviará uma solicitação ao servidor com um cabeçalho de solicitação If-Modified-Since com o registro de data e hora da versão em cache do recurso atualmente em cache. O servidor responderá com um código de status 200 OK seguido pelos dados ou um código de status 304 Not Modified . Para um recurso estático, isso provavelmente será um 304 status e o navegador carregará o recurso do cache. Em outras palavras, o navegador não tem permissão para carregar o recurso do cache até obter uma resposta do servidor. Portanto, ao pressionar F5, mesmo que o recurso não seja totalmente retransmitido, o tempo de carregamento do recurso ainda estará sujeito à latência da rede e ao tempo de resposta do servidor. Isso pode levar de 50 a 100 ms ou mais por recurso.

Esse comportamento pode ser observado com a função de rede das ferramentas de desenvolvimento internas dos navegadores. Você mesmo pode abrir as ferramentas de desenvolvimento pressionando control + deslocamento + I , selecionando rede e observando o que acontece quando você recarrega a página nos diferentes maneiras. No Chrome, você verá que, ao pressionar Enter, os recursos carregados diretamente do cache terão status 200 OK e tamanho (from cache) . No Firefox, os recursos carregados diretamente do cache nem são mostrados na exibição de rede. Ao pressionar F5, por outro lado, as solicitações são enviadas ao servidor para todos os recursos, que geralmente respondem com um status 304 .

    
por 19.03.2014 / 18:58