Можно ли отключить бесконечную прокрутку для всех сайтов?

21

Я ненавижу сайты с бесконечной прокруткой, в основном потому, что они используют всю мою оперативную память. Есть ли способ убедить сайты не загружаться таким образом? Может быть, расширение для браузера, которое превращает его обратно в отдельные страницы? Способ заставить браузер сообщать, что он его не поддерживает? Что-то, что я мог удалить?

FBO
источник
6
Вы можете отключить JavaScript. Но все остальное было бы невозможно без поддержки самого сайта.
Slhck
AdBlock конкретный JavaScript, который вызывает бесконечную прокрутку?
Эндолит
@endolith: Существуют разные решения для разных сайтов, поскольку каждый из них реализует бесконечную прокрутку по-разному. Пожалуйста, укажите, какие основные веб-сайты, которые вызывают у вас проблемы.
harrymc
@harrymc Я хочу заблокировать их всех. Например, список фильтров adblock, который блокирует как можно больше.
эндолиты
@endolith: вам понадобится несколько правил для блокировки рекламы для нескольких сайтов. И, кроме того, что вам действительно нужно, так это преобразовать прокрутку в обычные кнопки Next / Previous. Это доступно для некоторых сайтов, таких как Wordpress.
harrymc

Ответы:

4

Есть несколько убедительных причин, почему ответ «нет».

Некоторые сайты добавляют контент динамически (например, Facebook) в тот момент, когда вы прокручиваете страницу вниз, поэтому, возможно, это те случаи, которые вам не нужны.

Другие сайты добавляют контент динамически, независимо от взаимодействия с пользователем (например, прокрутка). В принципе, это может быть как-то решено путем предотвращения / ограничения ответственных веб-соединений после заполнения страницы. Тем не менее, попытка включить это прозрачно в случае, если вы решите перейти на «следующую страницу», вероятно, обречена, так как можно ожидать, что процессы перестали работать из-за тайм-аутов.

С другой стороны, есть страницы, которые просто выводят много содержимого страницы, возможно, даже статического содержимого. Клиент может просто разорвать соединение, как только станет достаточно для отображения экрана данных, но это означает, что для перехода на «следующую страницу» вам придется начать загрузку страницы заново. Со многими страницами это приведет к большой трате пропускной способности для бесполезных перезагрузок; также это может быть нежелательно в случае побочных эффектов (таких как онлайн-заказы). В качестве альтернативы клиент может ограничить TCP-соединение, пока вы не решите перейти на «следующую страницу». Я боюсь, что веб-серверы там не будут рады (и разорвать ваше соединение) с таким решением, потому что это тратит их впустуюРесурсы. Более того, если вы хотите иметь возможность пролистывать предыдущие страницы, у вас все еще есть проблема с необходимостью сохранять весь контент в ОЗУ или в кеше.

Еще одна альтернатива - полностью загрузить страницу и просто отобразить ее по страницам. Но это эквивалентно тому, что у вас есть сейчас: пролистать длинную страницу. Вы можете только надеяться, что большая часть занимаемой памяти находится на диске, а не в ОЗУ, поэтому, возможно, эта опция не слишком надумана.

Все это не учитывает того, что общий макет может требовать более или менее полного содержимого страницы, чтобы решить, как должны выглядеть «страницы» или где разбивать страницы.

Единственный реально осуществимый способ, который я вижу, состоит в том, чтобы использовать механизмы, которые позволяют отображать постраничный контент, не содержащий страниц, априори: использовать media:printстили, которые по существу равносильны загрузке страницы и предварительному просмотру печати. Возможно, вы уже заметили, что многие страницы отображаются ужасно при печати или при предварительном просмотре, даже если веб-разработчикам доступно множество вариантов стилей для решения конкретных задач, так что представьте, что вы получите. Тем не менее, если использовать это как (например, Firefox) дополнение, рабочий процесс будет таким, что страница загружается, а затем будет отображаться как в предварительном просмотре parint. Если не углубляться в глубины браузера, это все равно приведет к тому, что вся страница будет храниться в оперативной памяти, а не то, что вам нужно.

Хаген фон Айцен
источник
4

При использовании Firefox можно использовать дополнение Kill Infinite Scroll , которое в настоящее время имеет версию 0.79.4.

Это дополнение описывается как:

Это отключает бесконечную прокрутку, используемую Tumblr и другими сайтами. В частности, он наносит ущерб сценариям с http://www.infinite-scroll.com (версии 1.4 и 2.0). В отличие от дополнения Anti Tumblr Infinite Scroll, оно просто восстанавливает оригинальные кнопки Next и Prev.

Я считаю, что восстановление кнопок «Далее» и «Предыдущий» предпочтительнее, чем просто уничтожение прокрутки, так как прокрутку все еще можно выполнять, но использование памяти будет оставаться практически постоянным.

В противном случае, чтобы уничтожить свиток, я предлагаю вместо использования Adblock лучше использовать расширение, такое как NoScript, чтобы запретить весь javascript на всех сайтах, кроме тех, которым вы доверяете (или, по крайней мере, запретить сторонний javascript). Это на самом деле защитный механизм, который каждый должен использовать против вирусов, передаваемых через браузер. Всякий раз, когда вы хотите временно повторно включить прокрутку, вы можете сделать это, временно разрешив сценарии (которые остаются в силе до закрытия браузера).

harrymc
источник
Я использовал noscript в прошлом, и он ломает слишком много вещей, чтобы стоить того. Yesscript, вероятно, хорошая идея, хотя. Я этим давно не пользовался.
эндолиты
@endolith: NoScript работает очень хорошо для меня после того, как я постоянно разрешаю некоторые часто используемые скриптовые сайты. Проблема с YesScript заключается в том, что по умолчанию он пропускает все, поэтому вирус будет установлен до того, как вы об этом узнаете.
harrymc
1
В моем опыте noscript сломался на 90%, если все, что я посетил, и я потратил больше времени на написание сценариев, чем на просмотр сайтов. Этот вопрос о бесконечном не спиральных вирусах
эндолиты
4

Вы можете использовать AdBlock / uBlock, чтобы заблокировать код, который загружает следующую страницу. Это грубо, но работает, например:

! 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

Я тоже пробовал это, но они не работали:

! 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

Но кто-то, кто хорош с правилами фильтра Adblock (не я), мог бы разработать блок-лист для блокировки бесконечной прокрутки на многих сайтах.

Или используйте дополнения или пользовательские скрипты, чтобы переопределить это поведение и заменить его более удобным для пользователя.

Этот вид дополнения отключает его в Tumblr, например: https://addons.mozilla.org/en-US/firefox/addon/anti-tumblr-infinite-scroll/ Он по-прежнему автоматически загружает новую страницу, когда вы достигаете нижняя часть, которая раздражает, но она заменяет текущую страницу вместо ее добавления, и демонстрирует подтверждение концепции того, что может существовать.

Я попытался создать список здесь, но я не эксперт по правилам Adblock:

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

эндолиты
источник