Como evitar que o Chrome atualize a página ao visualizar a fonte?

18

Ao visualizar a origem da página no Google Chrome, o navegador abre uma nova guia e basicamente cola o URL com o prefixo view-source: . Isso é indesejável.

Como desenvolvedor, posso incluir alguma saída de diagnóstico que seja visível apenas na origem após o envio de um formulário. Quando o Chrome atualiza a página para visualizar a fonte, esta informação desaparece.

Existe alguma maneira de evitar esse comportamento?

Observação: estou familiarizado com a opção "Inspecionar elemento". Esse não é um substituto adequado para visualizar a origem da página bruta da página exata em que você está olhando.

Um script de teste rápido

<pre>
  <?= print_r($_POST, true) ?>
</pre>
<form action="" method="post">
  <input id="foo" name="foo" value="bar" />
  <input type="submit" />
</form>

Depois de clicar no botão enviar, a página mostra

Array
(
    [foo] => bar
)

Se você visualizar a origem da página, verá um vazio $_POST output

<pre>
Array
(
)
</pre>
<form action="" method="post"> 
  <input id="foo" name="foo" value="bar" /> 
  <input type="submit" /> 
</form> 

Atualizar

Aparentemente, esse bug já foi enviado. Suspiro ...

Se alguém souber de um bom trabalho, agradeceria muito.

    
por macek 06.08.2010 / 21:04

3 respostas

12

Na página de relatórios de erros, a solução alternativa mencionada no comentário 12 funciona : Nas Ferramentas do desenvolvedor, ative o Rastreamento de recursos. (Se estiver desativado, ativá-lo irá reenviar a solicitação que gerou a página visível no momento, POST ou GET.) Na lista de Recursos, você pode clicar na página principal para ver o código-fonte como ele foi retornado por para solicitações POST e GET.

Mais informações

Executei alguns testes usando um arquivo php simples que mostrou o método de solicitação usado e um valor POSTed, um log do servidor proxy para ver quais solicitações o Chrome estava realizando e o prefixo chrome://net-internals/view-cache/ para ver o que o Chrome armazenava em cache.

Quando você usa o comando Visualizar código-fonte, o Chrome mostra a origem de sua versão em cache da página, e armazena somente em cache as páginas solicitadas por meio do método GET.

Se você estiver olhando para uma página que você solicitou anteriormente usando GET e POST, somente a versão GET será armazenada em cache. Usar o comando Exibir Fonte não irá solicitar novamente a página, mas mostrará a versão em cache do GET, e não a versão POST visível no momento, se houver.

Se você estiver olhando para uma página que solicitou usando apenas o método POST, usar o comando Exibir origem fará com que o Chrome procure em seu cache, não encontre nada, solicite a página usando GET, armazene-a em cache e mostre a fonte disso.

    
por 08.08.2010 / 03:12
2

Boa pergunta - e um tanto decepcionante ler todos os comentários "isso está errado" ou "isso não vai funcionar". Esse comportamento torna o recurso "Exibir fonte da página" inútil para o desenvolvimento em muitos casos.

Há uma extensão chamada " Visualizador de fontes rápidas ", que parece realmente mostrar a fonte da página atualmente carregada (ainda não testei com solicitações POST).

    
por 24.03.2015 / 12:24
0

Lamentamos informar, mas isso é contra a natureza atual da navegação e da depuração em um navegador ...

A fonte original não é mantida na memória, mas é analisada e transformada em uma árvore de análise o mais rápido possível, para evitar o uso inútil de memória. Assim, qualquer informação de depuração oculta na origem é perdida e deve ser explicitamente solicitada. Nos chamados sites da Web 2.0, os elementos também mudam e é por isso que a inspeção é assim ...

Solução 1: O depurador da Web do Fiddler permite inspecionar o tráfego HTTP,
isso permite que você veja as informações de depuração de sua última solicitação.

Solução 2: incorpora suas informações de depuração ou as acrescenta no final,
ou talvez mostrá-lo como um pop-up ou de outra forma incrível que não perturbe o seu lay-out.

    
por 06.08.2010 / 21:28