Se você for para Eg:
- http://www.forbes.com/sites/adrianbridgwater/2015/06/12/why-technology-has-to-be-continuous/ OU
- http://www.zdnet.com/article/if-you-want-those-cool-ios-9-features-its-time-to-buy-a-new-ipad/
Quando você chega ao final da página, uma nova notícia é carregada e o URL no meu navegador da Internet muda para o URL desta próxima notícia. Então, eu queria saber como uma página da Web pode carregar quase instantaneamente a próxima página com um atraso quase insignificante entre as páginas. Eles estão, por exemplo, fazendo o pré-download da página da história do Next News e, em seguida, carregando a página muito rápido?
End
tecla e você verá o atraso do processo de carregamento.Respostas:
A resposta curta é que o código Javascript do lado do cliente da página detecta quando você fica "muito perto" da parte inferior da página e solicita ao servidor mais dados quando isso acontece.
Sem ficar muito técnico, eles não estão recarregando a página da web inteira. Em vez disso, o código Javascript nessa página está solicitando mais dados do servidor e, quando recebe os novos dados, os adiciona à página atual. As partes da página que não precisam ser alteradas permanecem completamente inalteradas.
A maneira mais moderna de fazer isso é usar os recursos de modificação de histórico do HTML5 , que parecem ser o que esses sites estão usando.
fonte
/second
), ela erros. Isso não acontece no site de notícias da OP - eles alteram o URL precisamente para que você possa compartilhá-lo.history.pushState
ehistory.replaceState
permite alterar o URL na barra de endereço sem sair da página atual. É a substituição mais moderna do truque antigo de alterar o fragmento de URL (#something
), com uma grande vantagem: a API de histórico permite enviar URLs "reais" que o servidor pode participar na geração, enquanto o fragmento precisa ser completamente suportado. do lado do cliente.Uma grande chave para entender o que está acontecendo: é possível, via Javascript, definir o URL na barra de endereços sem realmente redirecionar o usuário. Para ver isso em ação, cole o código abaixo no console do navegador suportado. Observe que ele altera sua barra de endereço para
http://programmers.stackexchange.com/yay.html
.O benefício dessa abordagem é que, se o usuário marcar depois de rolar para uma história, o marcador saberá para onde enviar o usuário. A rolagem infinita dos resultados de pesquisa do DeviantArt é um bom exemplo desse comportamento.
fonte
offset
parâmetro que pula uma certa distância no conjunto de resultados. Como a ordem de classificação padrão parece ser "popular o tempo todo", os resultados provavelmente são um pouco estáveis, mas definitivamente não se você alternar a ordem de classificação para "mais recente" e procurar algo popular.