Tydzień 37

Strony WWW wyglądają ładnie, ale koszmarnie długo się ładują. Problem polega na tym, że ludzie są niecierpliwi, a do tego przyzwyczajeni, żeby dostawać wszystko tu i teraz. Jeżeli mają na coś czekać, to rezygnują. Wybierając między ładnym wyglądem, a szybkością wczytywania się strony, zawsze należy wybierać szybkość.

Jakiś czas temu stworzyłem stronę promującą Błędne Skały i generalnie strona jest bardzo ładna wizualnie, ale miała taki mankament, że ładowała się nieznośnie długo. Na szczęście narzędzia developerskie w Google Chrome pomagają w tym zadaniu. Pierwsze z nich to narzędzie „Network” w zakładce dla developerów, które pokazuje wagę każdego z ładowanych plików strony WWW i czas potrzebny do jego załadowania.

Drugie narzędzie to Audits, również dostępne w zakładce dla developerów. Narzędzie to bada nie tylko szybkość ładowania się strony, ale ocenia również SEO i pokazuje jak strona wyświetla się w trakcie ładowania. Te dwa narzędzia dają już bardzo dużą wiedzę na temat tego, jak szybko ładuje się strona i jakie oceny otrzyma w badaniu przez najbardziej popularną przeglądarkę w sieci. Warto mieć dobre oceny w tym rankingu.

Błędne Skały przeszły przede wszystkim kurację odchudzającą zdjęć. https://tinypng.com/ to świetne narzędzie do kompresji zdjęć bez znaczącej utraty ich jakości. Nie wiem na czym polega algorytm „odchudzania” zdjęć, ale ważne że działa. Poza tym zauważyłem, że część dodanych na stronę zdjęć miało wyższą rozdzielczość niż wyświetlana na stronie. Patrząc na to obiektywnie, to zupełnie niepotrzebne spowalnianie ładowania się strony. Co gorsza, jest to niepotrzebne marnowanie transferu klienta, który szczególnie w przypadku połączeń komórkowych jest ograniczona.

Drugim przedmiotem optymalizacji była aplikacja HydroApp. Docelowo zaprojektowana dla użytkowników urządzeń mobilnych. Najwięcej kodu w tej aplikacji jest po stronie Java Scriptu. Trudno zoptymalizować kod html, ale okazało się, że można wykonać optymalizację za pomocą funkcji oferowanych przez Serwice Worker. Serwice Worker, to skrypt który uruchamia się w sposób niezauważalny dla użytkownika, a web developerowi pozwala uruchomić kod w tle. Jedną z ciekawych opcji na jaką pozwala Serwice Worker, to możliwość ściągnięcia niezbędnych elementów strony do pamięci cache na urządzeniu. Dzięki temu witryna może ściągnąć ciężkie pliki tylko raz, bez konieczności ściągania tych samych plików za każdym razem, kiedy użytkownik zechce odwiedzić stronę. Można również ściągnąć do pamięci cache całą witrynę, dzięki czemu będzie ona działała offline w takim zakresie, jaki jest dostępny bez konieczności wykonania interakcji z serwerem. Hydro App nie jest dużą witryną, więc zdecydowałem się na ściągnięcie całości do pamięci cache przy pierwszym uruchomieniu, a następnie synchronizowanie z serwerem kiedy sieć jest dostępna. Praktycznie jednak, aplikacja nie komunikuje się z serwerem, bo ilość wypitych szklanek wody przechowywana jest w pamięci podręcznej przeglądarki. Dzięki takiemu zabiegowi użytkownik zyskuje możliwość korzystania z aplikacji nawet wtedy, kiedy nie ma dostępu do sieci.

Na koniec ciekawostka z tego tygodnia React View. Jeżeli chcesz pozwolić ludziom od designu pobawić się komponentami w React, to powstało do tego świetne narzędzie. Po polsku można by to nazwać generatorem kodu online. https://baseweb.design/blog/introducing-react-view/ narzędzie daje dużo swobody w modyfikowaniu zachowania się komponentów, co wpływa na interakcję aplikacji z użytkownikiem. W fazie projektowej takie narzędzie znacznie przyspiesza pracę.

W tym tygodniu na optymalizację stron poświęciłem dwanaście i pół godziny.

No comments
Krzysztof NyrekTydzień 37

Related Posts

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *