На тему тормозов сайта Pikabu

Тут несколько раз видел темы, и в этих темах многие жалуются на лаги в работ сайта. Практически все заканчиваются тем, что по мнению авторов тем все разработчики Пикабу тупые бараны, которые нихрена не умеют. Развенчаем этот миф. Затупы сайта связаны с тем, что разработчики как-раз умные.

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

Итак, я заметил, что лаги появились ровно в тот же момент, когда адблок перестал блокировать рекламные баннеры. Пу-пу-пу, подумал я. А что они такого придумали? Немного теории. Вся реклама - встроенная. т.е. внешний скрипт добавляет рекламный контент в предназначенное ему место. Блокировщики рекламы или удаляют этот контент, или блокируют работу скрипта по HTTP. Разработчики ищут обходные пути обхода блокировщиков и все повторяется по новой.

В чем проблема на этот раз? Проблема в обходе блокировок. Перейдем сразу к делу

На тему тормозов сайта Pikabu Реклама, Блокировка рекламы

вот типичный представитель Reclamus Bannerus, в народе называемым - рекламный баннер. Он сидит в DOM, но блокировщик его не трогает. Почему? Внимательно смотрим в тэг <div> выделенный синим. Это и есть блок куда скриптом инжектируется баннер. Блокировщик в основном ищет что-то уникальное в названиях или путях x-path, есть правила. Поэтому разработчики всеми силами пытаются замаскировать рекламные блоки под контент сайта. И это у них получилось. Если мы перезагрузим страницу, то в этом блоке и у его потомков сменится класс. Аттрибут class сейчас заполнен какими-то псевдоклассами с рандомными названиями. И эти псевдоклассы каждый раз новые. Тут должа быть колоссальная работа для скрипта, потому что каждому псевдоклассу соответствует стиль CSS и они должы соответствовать. Думаю затупы тут. Но как выкинуть теперь рекламу из контента? Блокировщих обманут. Указать путь по классу не вариант. x-path тоже не выход, потому что это статичный баннер, а в ленте динамичные. Выход есть. Присмотритесь к блоку, выделенным стрелкой. Я не буду рассказывать как писать правило, только скажу, что аттрибут data-ssr присутствует в рекламных блоках.

Ну, что-же, разработчики. Молодцы. В следующий раз придумайте что-нить получше. Или уберите количество рекламных блоков. Чем больше блоков с динамическими скриптами обрабатывает рекламный тэг, тем медленнее вас сайт. На этом все