INTERNET, NOWE TECHNOLOGIE, WEBDEVELOPMENT, BADANIE INTERNETU

10 GRUDNIA 2013  /  TECHNOLOGIE  /  10 KOMENTARZY

WYŁĄCZ JAVASCRIPT I SPRAWDŹ, JAK SZYBKO MOŻE DZIAŁAĆ INTERNET

Stronom internetowym towarzyszy szum wentylatorów. Dosłownie. Wchodząc na większość popularnych adresów nasz komputer napotyka wyzwanie, któremu sprostać może tylko wytężona praca procesora. Word czy Excel to niewymagające zadania w porównaniu z próbą otworzenia portalu Gazety czy serwisu Flickr.

Siedzę przy laptopie, wyposażonym w szybki procesor Intel i7. Wszystko działa płynnie, z wyjątkiem stron internetowych. Jeśli w jakimś serwisie umieszczono ponadprzeciętną ilość kodu JavaScript, przeglądarka zaczyna się zacinać, okresowo nie mogę przewijać zawartości strony, zdarza się zatrzymanie na dłuższą chwilę całego programu. Trwa to do momentu, zanim komputer nie doczyta danych, pobieranych z całego świata.

Wysilenie procesora do 100% i gwałtowany rozruch wentylatorów powodują skrypty uruchamiane wewnątrz strony. A dziś jest ich wiele: narzędzia do statystyk, ramki reklamowe i społecznościowe, systemy komentarzy oraz różne gadżety i widżety. Tak działa cała sieć.

W drugim komputerze, który ma już kilka lat i działa w oparciu o jeden z pierwszych procesorów dwurdzeniowych, też wszystko działa znośnie, za wyjątkiem stron internetowych. Tyle że tu otwierają się one w ślimaczym tempie.

Technologie wyświetlania stron internetowych to dziś jeden wielki chaos, przez co zwykła strona WWW pokonuje urządzenia, których moc obliczeniowa jest liczona w setkach miliardów operacji zmiennoprzecinkowych na sekundę. I to w komputerach, na których bez problemu działa specjalistyczne oprogramowanie.

W tym miejscu proponuję wszystkim małe doświadczenie: wyłączyć JavaScript i sprawdzić, jak szybko może działać Internet, nawet na wolnych łączach. Przy okazji dowiemy się, co naprawdę oznacza słowo "responsywne".

Obsługę JavaScript można wyłączyć w każdej przeglądarce. Najłatwiej to zrobić w Operze. Pod przyciskiem F12 mamy dostęp do menu szybkiej konfiguracji, gdzie jednym kliknięciem blokujemy uruchamianie skryptów. Od tego momentu możemy cieszyć się szybko wczytującymi się stronami internetowymi i błyskawiczną nawigacją.

Oto przykład. Mając wyłączony JS wchodzę na Onet. Strona główna wczytuje się natychmiastowo. Nie widzę części zdjęć w ramkach informacyjnych, ale układ treści jest zachowany. Klikam w link do jednej z krajowych wiadomości, która pokazuje się od razu. W ten sam sposób przechodzę do kolejnych artykułów. Następnie cofam się do poprzedniej strony i przejście następuje błyskawicznie. Wciskam kilkakrotnie przycisk "wstecz", potem o kilka stron przesuwam się do przodu, powtarzam to wielokrotnie - przełączanie stron odbywa się natychmiast, bez żadnych opóźnień.

Teraz wykonuję to samo z włączonym JavaScriptem. Strona główna wczytuje się przez 4 sekundy. W tym czasie zawartość dwukrotnie skacze, w górę i w dół. Przechodzę do pierwszego artykułu, co trwa jeszcze dłużej. Dopiero po 7 sekundach znika ikona klepsydry obok kursora myszy, strona w tym czasie "tańczy" z powodu doczytujących się elementów. Wchodzę na kilka kolejnych podstron i próbuję na zmianę wciskać "wstecz" i "dalej". Strony które odwiedziłem wczytują się ze znacznym opóźnieniem, a po każdym kliknięciu wyświetlona zawartość kilkakrotnie przemieszcza się w pionie.

Ten sam efekt zauważymy na innych portalach. Lepsze osiągi uzyskamy, wchodząc z wyłączonym JavaScriptem na blogi i fora dyskusyjne. Większość z nich działa w oparciu o gotowe platformy i jest nafaszerowana różnymi skryptami.

Pierwsze trzy blogi z kategorii najpopularniejszych które właśnie odwiedziłem, miały w kodzie strony dołączone ponad 40 skryptów JS! Większość z nich to kod dociągany z zewnętrznych serwerów: systemy reklamowe, statystyki, programy partnerskie, biblioteki efektów, odwołania do Facebooka, Google+, Wykopu i inne.

To samo na forach dyskusyjnych, które najczęściej uruchamiane są przy pomocy kilku popularnych pakietów i są wielokrotnie modyfikowane. Tu liczba wykorzystywanych skryptów zawiera się w przedziale od 30 do 80. I znów to samo: trwające długie sekundy oczekiwanie na załadowanie strony, drgawki góra-dół i działająca z opóźnieniem opcja "wstecz". Po wyłączeniu JavaScript wymienione problemy znikają. Każda strona otwiera się natychmiast, nic nie skacze i można bez problemu zapoznać się z jej treścią.

Ciekawie wygląda korzystanie z Google. Mając wyłączone skrypty otrzymuje się starą, dobrze znaną wersję wyszukiwarki, w której główne opcje są na stałe wyświetlone u góry. Obok wyników mamy dostęp do parametrów wyszukiwania, takich jak język, rozmiar zdjęcia czy czas trwania filmu. Możemy jednym kliknięciem sortować wyniki, bez przedzierania się przez rozwijane menu, jak ma to miejsce we współczesnej wersji Google.

JavaScript sam w sobie nie jest zły. Nie stanowią również problemu systemy reklamowe, nawet jeśli jest ich kilka, pod warunkiem, że osadzone są w sposób, który nie powoduje skoków suwaka. Problemy sprawia przeładowanie kodu dużą ilością skryptów i stosowanie ich na wyrost. Na przykład wykorzystanie JS do publikowania zwykłych obrazków lub używanie biblioteki-kolosa typu jQuery do obsługi jednego prostego efektu.

Wyłączając JavaScript odcinamy się od świata multimediów, bankowości i Facebooka. W zamian otrzymujemy niezakłócony dostęp do treści. To powrót do Internetu z czasów, gdy był on medium czysto informacyjnym, nie tworem reklamowym z dodatkiem gadżetów.

Na dłuższą metę nie da się korzystać z sieci bez obsługi skryptów. Ich wyłączenie ma też tę wadę, że przy okazji blokujemy reklamy, pozbawiając autorów stron źródeł dochodu. Proponuję więc wyłączyć JS dla samego spróbowania, jak wygląda przeglądanie stron w szybkim wydaniu i przekonania się, co straciliśmy przez chaotyczny rozwój technologii internetowych.

Sławomir Wilk

Artykuł opublikowany został w serwisie Dziennik Internautów www.di24.pl.
Komentarze:


Grzegorz Kraszewski2013-12-10 18:28
Wszystko to prawda, ale z ostatnim akapitem się nie zgodzę. Osobiście nie wyłączam JavaScriptu całkowicie, po to, żeby zobaczyć jak to jest. Zamiast tego na AdBlocku bezlitośnie tnę *przede wszystkim* reklamy i skrypty statystyczne oraz śledzące, mam kilkaset wpisów na tę okoliczność (+ filtr ciasteczek i blokowanie local storage) i mam to na stałe włączone. Dzięki temu odwiedzane przeze mnie strony również wczytują się bardzo szybko, nie tracą przy tym na funkcjonalności, często bez JS okrojonej.
Peter_D2013-12-10 19:05
Dużo mógłbym powiedzieć na temat tego artykułu. Zacznę jednak od tego, że kiedyś "programiści" html jęczeli i stękali, że flash zamula, że jest najgorszy na świecie. Prawda była taka, że znacznie szybciej wykonywał procedury niż wszystkie przeglądarki razem wzięte.
Wracając do tematu. Owszem internet zamula, ale dlatego, że użyte jest dużo kodu, do tego użyte nieumiejętnie. Wszędzie gdzie się da programiści walą jquery, które samo w sobie waży ze 100kb. Niedzielni programiści, którzy są tak dobrzy w pisaniu kodu JS jak ja w łyżwiarstwie figurowym. Nie znają się, a ich największe osiągniecie to ściągnięcie pluginu właśnie do jquery i wstawienie go w kod stron niejednokrotnie duplikując linijki do osadzania JQ z różnych źródeł. Następnie to wszystko się musi wczytać, zainicjować, a potem strona z jednym sliderem zdjęć się haczy.
Wszystko ma gdzieś wytłumaczenie. Ale najczęstszym powodem jest właśnie nieumiejętność i brak wiedzy programisty, dla którego wiedza na temat Javascriptu kończy się na wrzuceniu kilku linijek gotowego kodu z plugina JQuery.
andid2013-12-10 19:06
Zgadzam się ze wszystkim co tu opisano. Mam laptopa z jednordzeniowym celeronem 1.6GHz, czyli taki komputer sprzed 8 lat. Każda współczesna przeglądarka muli na nim nawet gdy nie otworzyłem żadnej strony. Po wejściu na taki onet masakra, czas ładowania powyżej 10 sekund na stronę, allegro nieużywalne od chwili gdy miniatury zdjęć doczytują się skryptami, do tego ciągłe lagi.
deezer2013-12-10 19:17
Są dwa powody generujące takie szopki. Moda na robienie stron pięknych, animowanych i stylowych oraz ciśnienie na media społecznościowe. Kiedyś klient chciał po prostu menu - ok, wstawialiśmy statycznie i gotowe. Potem chciał zwykłe rozwijane menu - ok, prosty skrypcik JS i gotowe. Teraz menu ma się płynnie rozwinąć jak na stronie konkurencji, najlepiej z fade in/out. Więc programista dorzuca jquery, prototype czy inną bibliotekę tylko po to, aby zrobić prostą animacyjkę. Gdzie się da wstawiane są wtyczki społecznościowe, strona musi być dzisiaj połączona z facebookiem, google, gg, nk, wykopem, linkedinem i wieloma innymi serwisami web2.0. Do tego statystyki google, gemiusa, różne adwordsy. Strona która właśnie skończyłem robić klientowi waży jakieś 15 kb licząc sam kod HTML+CSS dla strony głównej. Sprawdziłem ile danych dociąga przez JS, masakra, prawie 1MB.
P.2013-12-10 19:22
Uwielbiam momenty gdy klikam w coś na portalu czy aukcjach i trafiam w zupełnie coś innego, bo strona w tym czasie się przesunęła.
pozycjonowanie stron2014-06-06 10:43
"blokujemy reklamy, pozbawiając autorów stron źródeł dochodu" to ma być zaleta blokady javascript? Przecież jeśli ktoś płaci to dlaczego mamy kogoś tych korzyści pozbawiać. Osobiście często klikam w banery tylko w tym celu by firma reklamująca się w ten irytujący sposób traciła pieniądze.
jrk2015-02-15 01:35
Mnie również denerwuje ?tańczenie? strony. Nie jest to jednak to samo, co działo się w czasach powolnego internetu, gdy w tagu bez podanych atrybutów width i height z opóźnieniem załadował się obrazek. Jest to spowodowane jakimiś dziwnymi skryptami.

Jeśli chodzi o blokowanie reklam, to nie pozbawiam nikogo dochodu. Wręcz przeciwnie ? zaoszczędzam pieniądze firm reklamowych. Reklama nie jest celem samym w sobie. Ma ona zachęcić mnie do zakupu jakiegoś produktu. Jeśli wyświetlają mi reklamę np. metody na odchudzanie albo szybkiego kredytu gotówkowego, to niepotrzebnie zużywają zasoby, gdyż są to produkty, których nigdy nie kupię ? niezależnie od tego, czy jest to flashowy popup zasłaniający całą stronę, w miarę sensowny baner, czy tekstowa reklama kontekstowa.
antar2016-05-29 12:55
Mnie nie obchodzą dochody i straty reklamodawców. Janie życzę sobie aby robili to moim kosztem. Po prostu - nie chcę reklam.
Nie chcę aby coś mi "wmuszano" sam wiem czego szukam i co potrzebuję a zabieranie mi z opłaconego pakietu danych MB na reklamy to zwyczajna kradzież.
gall2017-01-09 02:37
Właśnie zmuszają nas do oglądania reklam. Nasze łącze musi pobierać dane reklam x MB jak to napisał antar. To kradzież - co prawda, to prawda.
SakehsElato2017-07-19 15:20
?? ????????? ????????? ??? ??????? ??????? ??????????? ? ??????? ???????????? ? ????????? ????? ? ??????? ?????? ??? ??????, ??? ???????? ?????? ??????, ??? ?????? ??????? ???????????? ???? ??????? ?????? ??? ?????? ????????? ? ???? ??????????? ??????????, ????? ? ???????????? ?? ???????????? ? ?? ???????? ??????? ?????????? ??????????.

?????? ???? ?????? ?????? ????????? ????????, ??? ?????? ?????? ???????.???, ??? ?????? ??????? ??????????????, ???????? ? ????????????? ????????, ???????????? ???????????? ?? ????????? ??????? ????????? ??? ???????.

??????? ??????, ???? ?? ??????, ???? ??????? ????????????????? ???? ? ??? ??? ?? ??? ????? ??????? ????? ?? ???? ???????!

Dodaj komentarz:

Podpis: (wymagane)
Adres Twojej strony WWW: (opcjonalnie)
Twój adres e-mail: (opcjonalnie)
Treść komentarza:
Antyspam: policz ile
wynosi jeden plus dwa:
(wymagane)