Wykop XS - XHR Blocker
XHR Blocker pozwala na całkowite zablokowanie żądań, które Wykop próbuje wysłać podczas otwierania strony internetowej.
Wykop XHR Blocker jest jednym ze skryptów projektu "Wykop X"
Funkcja XHR Blocker dostępna jest także jako jedna z kilkudziesięciu funkcji Wykop XS. Jeśli chcesz mieć takie funkcje jak: wyświetlanie informacji o banach, wyświetlanie notatek do użytkowników, ukrywanie wpisów i znalezisk, wklejania obrazków skrótem CTRL+V, statystyki znalezisk, dodatkowe przyciski i kilkadziesiąt innych funkcji -
zamiast XHR Blockera zainstaluj skrypt Wykop XS
Informacje o XHR Blocker oraz pozostałych dodatkach Wykop X na GitHubie projektu:
https://github.com/wykopx/WykopX/wiki/XHR-Blocker
💲 Przydatne? Wesprzyj projekt i dorzuć kilka złotych na dalszy rozwój:
😃 https://buycoffee.to/wykopx
XHR Blocker blokuje requesty XHR (XMLHttpRequest), które podczas wczytywania strony wykop wysyła do:
Po aktywowaniu XHR Blocker wczytywanie Wykopu jest odczuwalnie szybsze - wzrost szybkości ładowania sięgać może nawet do 200-400%
(w zalezności od Twojego komputera, przeglądarki i połączenia internetowego).
💲 Przydatne? Jeśli chcesz możesz wysłać mi kilka złotych na dalszy rozwój
😃 https://buycoffee.to/wykopx
Czym są requesty XHR na Wykopie?
Domyślnie Wykop przy każdym otwarciu i odświeżeniu strony próbuje wczytać mniej więcej 30-50 różnego rodzaju skryptów reklamowych oraz trackerów śledzących użytkownika z takich serwererów jak:
- a.spolecznosci.net
- prebid.smilewanted.com
- bidder.adquery.io
- hpopenbid.pubmatic.com
- prg.smartadserver.com
- prebid.eu.creativecdn.com
- gpl.adocean.pl
- adx.adform.net
- delivery.clickonometrics.pl
- i.connectad.io
- hb.adscale.de
- t.visx.net
- script.3dex.io
- 1x1.a-mo.net
- ssp.wp.pl
... i wielu innych.
Wysłanie tak dużej liczby zapytań oraz oczekiwanie na wczytanie danych powoduje spowolnienie i często zawieszanie się wczytywanej strony oraz nadmiarowe wykorzystanie pamięci RAM i mocy obliczeniowej CPU.
Skrypty nawet po wczytaniu obciążają przeglądarkę regularnie analizując kliknięcia i zachowania użytkownika, zbierając dane i wysyłając je do kilkudziesięciu, a nawet kilkuset róznych reklamodawców.
Wszystko to skutkuje:
- powolnym wczytywaniu kolejnych stron Wykopu
- spowolnienie interfejsu przy korzystaniu z przeglądarki (także na innych stronach)
- uruchomione wentylatory chłodzące nagrzewający się procesor w Twoim komputerze
- nagrzewający się smartfon
- szybciej wyczerpywana bateria w smartfonie
- przekazywaniem danych o Tobie oraz twojej aktywności osobom trzecim
- śledzony jest dosłownie każdy Twój ruch myszką i każde wciśnięcie klawisza
- zapisywane i przekazywane mogą być statystyki dotyczące całego pobytu na stronie
Możesz zobaczyć jak działają trackery śledzące użytkowników na przykładzie Microsoft Clarity
Przykład działania XHR Blocker
Przy otwarciu strony głównej Wykop próbuje wysłać około 40-50 żądań do zewnętrznych domen.
Wszystkie te żądania zostają zablokowane przez XHR Blocker i nie zostają wysłane
- żadna informacja nie zostaje wysłana do zewnętrznych serwerów o tym, że wszedłeś na Wykop
- Twoje dane nie zostają nigdzie przekazane
- zablokowanie wysłania żądania powoduje, że przeglądarka nie oczekuje na zewnętrzne skrypty, nie próbuje ich pobrać natomiast od razu dalej wczytuje stronę (np. znaleziska lub wpisy)
- oszczędzamy czas ładowania i transfer pobieranych plików
- znacząco mniejsze obciążenie procesora oraz pamięci RAM
- oszczędzasz baterię na smartfonie
Opis działania
XHR Blocker jako skrypt, który masz zapisany w przeglądarce jest wstrzykiwany na samym początku ładowania strony wykopu - jeszcze przed wczytaniem reklam i skryptów.
Działanie skryptu polega na wykryciu każdego zapytania XHR czyli XMLHttpRequest i zastąpieniu go funkcją wykrywającą czy jest to żądanie do serwera zewnętrznego czy do wykopowego API. Każde zapytanie do API wykopu jest natychmiastowo przekazywane dalej, natomiast pozostałe żądania są blokowane i usuwane.
Przykładowo:
Wykop regularnie, co kilka sekund, sprawdza czy masz nowe powiadomienia, wysyłając żądanie XHR pod adres:
https://wykop.pl/api/v3/notifications/status
a także liczbę nowych aktywnych znalezisk w Wykopalisku:
https://wykop.pl/api/v3/links/stats/upcoming
Są to żądania XHR "wewnętrzne" czyli do API wykopu na domenie wykop.pl.
Te żądania XHR nie mogą być zablokowane, ponieważ strona całkowicie przestałaby działać.
Wyjątkiem jest blokowanie żądania do wewnętrznego API wykopu obsługującego wyświetlanie reklam:
https://wykop.pl/api/v3/ads
- XHR Blocker blokuje zapytania pod tym adresem, gdyż nie są one niezbędne do korzystania ze strony (a nawet ich zablokowanie przyspiesza wczytywanie strony i innych elementów)
Jak włączyć XHR Blocker
Aby skorzystać z XHR Blocker możesz zainstalować niniejszy userscript:
Wykop XS - XHR Blocker
Jeśli korzystasz z Wykop XS nie instaluj tego skryptu.
Wykop XS od wersji 3.0 ma domyślnie wbudowaną funkcję XHR Blockera.
Konfiguracja XHR Blocker
Domyślnie po zainstalowany *Wykop XS lub Wykop XS - XHR Blocker włączone jest blokowanie zarówno żądań zewnętrznych jak i żądania pod adres https://wykop.pl/api/v3/ads
Niezależnie który z tych dwóch skryptów wybierzesz, możesz skonfigurować działanie funkcji XHR Blocker za pomocą jednego ze stylów:
- Wykop X Style lub
- Wykop X Blank
Upewnij się wtedy, że włączona jest opcja
"Aktywuj skrypt Wykop XS i działanie włączonych funkcji ❎"
oraz wybrana przez Ciebie opcja w sekcji ❎ XHR Blocker
Logowanie zablokowanych żądań XHR
Jeśli chcesz widzieć co zablokował XHR Blocker możesz włączyć taką funkcję w ustawieniach:
Po włączeniu wejdź na stronę Wykopu i uruchom DevTools np.:
- klawiszem
F12
lub
- skrótem
CTRL
+ SHIFT
+ J
W konsoli zobaczysz wtedy które żądania zostały zablokowane, a które przepuszczone dalej i pobrane z serwera.