Puis-je désactiver le défilement infini pour tous les sites?

21

Je déteste les sites avec défilement infini, principalement parce qu'ils utilisent toute ma RAM. Existe-t-il un moyen de convaincre les sites Web de ne pas charger de cette façon? Peut-être une extension de navigateur qui la transforme en pages distinctes? Un moyen pour que le navigateur signale qu'il ne le prend pas en charge? Quelque chose que je pourrais désinstaller?

fbo
la source
6
Vous pouvez désactiver JavaScript. Mais tout le reste serait impossible sans le site Web lui-même prenant en charge la pagination.
slhck
bloquer le javascript spécifique qui provoque le défilement infini?
endolith
@endolith: Il existe différentes solutions pour différents sites Web, car chacun met en œuvre le défilement infini différemment. Veuillez indiquer quels sont les principaux sites Web qui vous posent problème.
harrymc
@harrymc Je veux les bloquer tous. Une liste de filtres adblock qui en bloque autant que possible, par exemple.
endolith
@endolith: Vous aurez besoin de plusieurs règles adblock pour plusieurs sites. Et en plus, ce que vous voulez vraiment, c'est convertir le défilement en boutons Suivant / Précédent normaux. Ceci est disponible pour certains sites Web, comme Wordpress.
harrymc

Réponses:

4

Il y a plusieurs raisons convaincantes pour lesquelles la réponse est "non".

Certains sites ajoutent du contenu dynamiquement (par exemple Facebook) au moment où vous faites défiler vers le bas, ce sont donc probablement les cas que vous ne recherchez pas.

D'autres sites ajoutent du contenu dynamiquement indépendamment de l'interaction de l'utilisateur (comme le défilement). En principe, ceux-ci pourraient être gérés d'une manière ou d'une autre en empêchant / limitant les connexions Web responsables une fois que la page est pleine. Cependant, essayer de réactiver cela de manière transparente au cas où vous décideriez d'aller à la "page suivante" est probablement voué à l'échec, car on peut s'attendre à ce que les processus aient abandonné en raison de délais d'attente.

Là encore, il y a des pages qui produisent simplement beaucoup de contenu de page, peut-être même du contenu statique. Le client peut simplement couper la connexion une fois qu'il y a suffisamment pour afficher un écran de données, mais cela signifie que pour accéder à la "page suivante", vous devrez recommencer le chargement de la page. Avec de nombreuses pages, cela entraînerait beaucoup de bande passante gaspillée pour des rechargements inutiles; cela peut également ne pas être souhaitable en cas d'effets secondaires (tels que les commandes en ligne). Alternativement, le client peut limiter la connexion TCP jusqu'à ce que vous choisissiez d'aller à la "page suivante". Je crains que les serveurs Web là-bas ne soient pas satisfaits (et abandonnent votre connexion) avec une telle solution car cela gaspille leurRessources. De plus, si vous voulez pouvoir parcourir les pages précédentes, vous avez toujours le problème de devoir garder le contenu complet dans la RAM ou le cache.

Une autre alternative serait de télécharger la page complètement et de l' afficher simplement page par page . Mais cela équivaut à ce que vous avez en ce moment: faites défiler une longue page. Vous pourriez seulement espérer que la majeure partie de l'empreinte mémoire se trouve sur le disque au lieu de la RAM, alors peut-être que cette option n'est pas trop farfelue.

Tout cela ne tient pas compte du fait que la mise en page globale peut nécessiter plus ou moins le contenu de la page complète pour décider à quoi les "pages" doivent ressembler ou où les séparer.

La seule façon vraiment réalisable que je vois est d'utiliser des mécanismes qui permettent l'affichage paginé du contenu a priori non paginé: utiliser un media:printstyle, ce qui reviendrait essentiellement à télécharger la page et à faire un aperçu avant impression. Vous avez peut-être déjà remarqué que de nombreuses pages s'affichent terriblement en impression ou en aperçu avant impression, même si de nombreuses options de style sont disponibles pour les développeurs Web pour traiter spécifiquement la pagination, alors imaginez ce que vous obtiendriez. Cependant, si l'on devait l'utiliser comme un addon (par exemple Firefox), le flux de travail serait que la page se télécharge et sera ensuite présentée comme dans l'aperçu de parint. Sans entrer profondément dans les entrailles du navigateur, cela entraînera toujours la pleine page en RAM, donc pas ce que vous recherchez.

Hagen von Eitzen
la source
4

Lorsque vous utilisez Firefox, vous pouvez utiliser le module complémentaire Kill Infinite Scroll , actuellement à la version 0.79.4.

Ce module complémentaire est décrit comme suit:

Cela désactive le défilement infini utilisé par Tumblr et d'autres sites. En particulier, il paralyse les scripts de http://www.infinite-scroll.com (versions 1.4 et 2.0). Contrairement au module complémentaire Anti Tumblr Infinite Scroll, il restaure simplement les boutons Suivant et Précédent d'origine.

Je crois que restaurer les boutons Suivant et Précédent est préférable à simplement détruire le défilement, car on peut toujours faire défiler mais l'utilisation de la mémoire restera à peu près constante.

Sinon, pour détruire le défilement, je suggère que plutôt que d'utiliser Adblock, vous feriez mieux d'utiliser une extension comme NoScript pour interdire tout javascript sur tous les sites Web à l'exception de ceux en lesquels vous avez confiance (ou au moins interdire le javascript tiers). Il s'agit en fait d'un mécanisme de défense que tout le monde devrait utiliser contre les virus de lecteur par navigateur. Chaque fois que vous souhaitez réactiver le défilement temporairement, vous pouvez le faire en autorisant temporairement les scripts (qui restent en vigueur jusqu'à la fermeture du navigateur).

harrymc
la source
J'ai utilisé noscript dans le passé et ça casse trop de choses pour en valoir la peine. Yesscript est probablement une bonne idée. Je n'ai pas utilisé ça depuis un moment.
endolith
@endolith: NoScript fonctionne très bien pour moi après avoir autorisé de manière permanente certains sites de script souvent utilisés. Le problème avec YesScript est que par défaut il laisse tout passer, donc le virus sera installé avant que vous ne le sachiez.
harrymc
1
Dans mon expérience, noscript a cassé 90% si tout ce que j'ai visité et j'ai passé plus de temps à autoriser les scripts qu'à consulter les sites. Cette question concerne le défilement infini et non les virus
endolith
4

Vous pouvez utiliser AdBlock / uBlock pour bloquer le code qui charge la page suivante. C'est grossier, mais ça marche, par exemple:

! Forbes infinite scroll (and all other AJAX) https://www.reddit.com/r/web_design/comments/4i6bpd/never_ending_scroll_down_on_some_websites_is_it_a/d2w3qj2
||forbes.com$xmlhttprequest

J'ai également essayé ces derniers mais ils n'ont pas fonctionné:

! Forbes infinite scroll https://adblockplus.org/forum/viewtopic.php?t=26583
||i.forbesimg.com/assets/img/loading_spinners/*
||forbesimg.com/scripts/combined/js/article-responsive*

! Bloomberg infinite scroll http://www.wilderssecurity.com/threads/ublock-origin-stopping-infinite-scrolling.379726/#post-2525404
bloomberg.com http://assets.bwbx.io/business/public/javascripts/application script block

Mais quelqu'un qui est bon avec les règles de filtrage Adblock (pas moi) pourrait développer une liste de blocage pour bloquer le défilement infini sur de nombreux sites.

Ou utilisez des modules complémentaires ou des scripts utilisateur pour remplacer ce comportement et le remplacer par quelque chose de plus convivial.

Ce module complémentaire le désactive sur Tumblr, par exemple: https://addons.mozilla.org/en-US/firefox/addon/anti-tumblr-infinite-scroll/ Il charge toujours une nouvelle page automatiquement lorsque vous atteignez le bas, ce qui est ennuyeux, mais il remplace la page actuelle au lieu de l'ajouter, et démontre une preuve de concept de ce qui pourrait exister.

J'ai essayé de commencer une liste ici, mais je ne suis pas un expert des règles Adblock:

https://gist.github.com/endolith/72ac5e69e037be02b118adbedcdeac59/

endolith
la source