Si vous allez à 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/
Lorsque vous arrivez au bas de la page, une nouvelle histoire se charge et l'URL de mon navigateur Internet devient l'URL de cette nouvelle histoire. Je me demandais donc comment une page Web peut charger presque instantanément la page Web suivante avec un délai presque négligeable entre les pages. Par exemple, sont-ils en train de pré-télécharger la page Web de l'article Next News, puis de charger la page Web très rapidement?
End
touche et vous verrez le délai de chargement.Réponses:
La réponse courte est que le code Javascript côté client de la page détecte lorsque vous vous approchez «trop près» du bas de la page et demande au serveur plus de données lorsque cela se produit.
Sans devenir trop technique, ils ne rechargent pas la page Web entière. Au lieu de cela, le code Javascript sur cette page demande plus de données au serveur, puis lorsqu'il reçoit les nouvelles données, il ajoute ces données à la page actuelle. Les parties de la page qui n'ont pas besoin d'être modifiées restent totalement inchangées.
La façon la plus moderne de le faire est d'utiliser les fonctionnalités de modification de l'historique HTML5 , qui semblent être ce que ces sites utilisent.
la source
/second
), cela génère des erreurs. Cela ne se produit pas avec le site d'actualités d'OP - ils modifient l'URL précisément afin que vous puissiez le partager.history.pushState
ethistory.replaceState
vous permet de modifier l'URL dans la barre d'adresse sans quitter la page actuelle. C'est le remplacement plus moderne de l'ancienne astuce consistant à changer le fragment d'URL (#something
), avec un gros avantage étant que l'API d'historique vous permet de pousser les URL "réelles" que le serveur peut participer à la génération, tandis que le fragment doit être pris en charge complètement du côté client.Une grande clé pour comprendre ce qui se passe: Il est possible, via Javascript, de définir l'URL dans la barre d'adresse sans rediriger l'utilisateur. Pour voir cela en action, collez le code ci-dessous dans la console d'un navigateur pris en charge. Notez qu'il change votre barre d'adresse en
http://programmers.stackexchange.com/yay.html
.L'avantage de cette approche est que si les signets de l'utilisateur après avoir défilé vers une histoire, le signet saura où envoyer l'utilisateur. Le défilement infini des résultats de recherche par DeviantArt est un bel exemple de ce comportement.
la source
offset
paramètre qui saute une certaine distance dans le jeu de résultats. Étant donné que l'ordre de tri par défaut semble être "populaire en tout temps", les résultats sont probablement quelque peu stables, mais certainement pas si vous passez l'ordre de tri sur "plus récent" et recherchez quelque chose de populaire.