Wydajne Tworzenie Stron WWW
2 godz. 2 min · Full-stack i Programowanie
Piotr PalarzWeb DeveloperNiezależnie od tego jak skomplikowana jest dana strona czy aplikacja internetowa, zawsze składa się ona z przynajmniej dwóch komponentów - struktury opisanej w HTML i wyglądu nadanego w CSS. Praca z tymi językami może czasami przyprawić o ból głowy, szczególnie wtedy, gdy tracimy czas na szukanie powodu "rozjeżdżającego się" layoutu lub złej wielkości fontu i miejsca, w którym został on nadpisany. W takich sytuacjach Chrome DevTools to nieoceniona pomoc. Dzięki temu narzędziu w mgnieniu oka znajdziesz zbyt szeroki element, zmienisz jego style "na żywo" i upewnisz się, że problem został rozwiązany. W kursie poznasz wszystkie techniki pracy z HTML i CSS, których wykorzystanie znacznie przyspieszy i uprości Twoją pracę.
Przygotowywanie stron na urządzenia mobilne nie należy do najłatwiejszych zadań. Składa się na to przede wszystkim fakt, iż do czynienia mamy z bardzo wieloma rozdzielczościami telefonów czy tabletów. W kursie zobaczysz, w jaki sposób skalować swoją stronę odwzorowując różne urządzenia, wyświetlać Media Queries czy emulować sensory ruchu. Dowiesz się również jak symulować wolniejsze połączenie internetowe, z którym mamy często do czynienia w mobilnych sieciach, a także jak spowolnić procesor, aby odwzorować słabszy sprzęt, jakim bez wątpienia są urządzenia mobilne.
Współczesne strony internetowe to nie tylko HTML i CSS. To także JavaScript - a nawet... sporo JavaScriptu. Z tego powodu narzędzia deweloperskie przeglądarek oferują i na tym polu wiele możliwości. Jedną z nich jest konsola, która pozwala wykonywać kod JavaScript w obrębie aktualnie otwartej strony. To właśnie tam możemy eksperymentować, podglądać logi czy błędy. Kiedy jednak stajemy przed rozwiązaniem trudniejszego problemu, często niezbędne jest skorzystanie z tzw. debuggera. Z kursu dowiesz się jak debugować swoje aplikacje, aby proces ich tworzenia był jak najprzyjemniejszy. Poznasz sposoby wykonywnania kodu linijka po linijce, gdzie na każdym etapie uzyskasz wgląd we wszystkie dane niezbędne do znalezienia problemu lub przetestowania tworzonego rozwiązania.
Nim dowolna strona internetowa zostanie wyświetlona, musi najpierw zostać do przeglądarki przesłana z serwera w formie kodu. Początkowo to tylko kod HTML, chwilę później CSS, JavaScript, fonty, obrazki, multimedia. Wszystkie te zasoby mają wpływ na szybkość ładowania się strony, a także jej renderowania. Tworząc serwis, bardzo łatwo "przesadzić" i stracić kontrolę nad wydajnością tego procesu.Tutaj z pomocą przychodzi panel Network, który omówimy w kursie. To tam znajdziemy wszystkie zapytania wysłane do serwera, dokładne dane na temat czasu pobierania każdego zasobu, statusy odpowiedzi ciasteczka i wiele więcej.
Choć zarówno komputery osobiste jak i urządzenia mobilne z roku na rok stają się coraz wydajniejsze, to i technologie tworzenia aplikacji internetowych idą do przodu. Oznacza to tylko tyle, że coraz bardziej zaawansowane aplikacje, wymagają do płynnego działania, coraz mocniejszych urządzeń. Trend ten można jednak w pewnym stopniu zatrzymać, skupiając się na tym, czy aby na pewno tworzone przez nas rozwiązania są dobrze przemyślane i wolne od błędów, które mogą powodować nadmierne zużycie pamięci czy czasu procesora. W kursie zobaczysz jak badać wydajność naszego kodu w kontekście CPU i pamięci RAM oraz na jakie pułapki zwracać szczególną uwagę.
Kurs ten jest dla wszystkich osób tworzących strony i aplikacje internetowe. Nieważne czy dopiero rozpoczynasz swoją przygodę z Web Developmentem czy jesteś już weteranem w tej branży. Materiał ten pokaże Ci nowoczesne techniki pracy, które przyspieszą i uproszczą proces tworzenia i testowania stron WWW. Kurs został podzielony w taki sposób, aby zarówno osoby znające wyłącznie HTML i CSS, jak i te korzystające już z języka JavaScript, znalazły porady odnośnie tych tematów.
W poprzedniej lekcji zobaczyłeś jak możemy stawiać breakpointy w
kodzie czyli chcemy żeby się gdzieś wykonywanie naszego kodu zatrzymało natomiast
teraz pokażę ci jak możemy stawiać takie same breakpointy ale kiedy
zmienia się coś na elemencie w drzewie dom czasami jest tak że korzystamy
z różnych bibliotek czy frameworków i coś na naszej stronie się zmienia ale nie jesteśmy
w stanie stwierdzić który skrypt tego dokonuje czyli na przykład pojawiają się jakieś
elementy znikają czy są dodawane klasy i tutaj mam taki bardzo
prosty przykład ale zauważ że jeżeli klikam ten przycisk otwórz to zmienia się treść
tego przycisku co również możemy zobaczyć tutaj na stronie i teraz
powiedzmy że działoby się to w sposób jakiś automatyczny czyli jakieś
dane byłoby wczytywane i tak dalej coś by się pojawiało nie wiesz który skrypt to robi możemy
na dowolnym elemencie kliknąć i wybrać coś takiego jak break on na
przykład subtree modifications to oznacza że chcemy zatrzymać wykonywanie kodu
kiedy z poziomu javascriptu będzie się zmieniać cokolwiek w drzewie
tego elementu i ten tekst który zmieniamy tak naprawdę jest osobnym takim węzłem
tekstowym więc to również się tutaj kwalifikuje natomiast jeżeli miałbyś
jakiś element wyższego rzędu na przykład ten div i do niego byłyby wstrzykiwane
jakieś elementy powiedzmy galeria dynamicznie nie wiesz który skrypt to robi
to na takim elemencie ustaw wtedy break onsubtree modifications możemy
również ustawić attribute modifications i wtedy zatrzyma się nasz kod zawsze
jakikolwiek atrybut w tym na przykład klasa zostanie zmieniony
z użyciem skrypt lub kiedy taki node będzie usunięty
możemy również to zaznaczyć więc przed usunięciem takiego elementu zatrzyma się
kod okej czyli ja chciałbym na tym przycisku to zrobić żeby
pokazać jak to w ogóle działa przejdziemy do break on subtree modifications
i teraz w momencie kiedy sobie kliknę tutaj zamknij zauważ że mamy post
in debugger czyli znowu zmodyfikowaliśmy coś tutaj a w zasadzie
nawet nie zdążyliśmy bo zostało to zatrzymane i widzimy
że skrypt jquery zmienia na tym elemencie jego text content
w taki oto sposób i przez to zostało to tutaj zatrzymane
znowu możemy tak jak w debuggerze przejść sobie po kolei i zobaczyć gdzie to
się dzieje natomiast sam fakt że jquery to zmienia jeszcze dużo nam nie mówi ale
jeżeli zerkniemy sobie na call stack czyli jak to zostało wykonane to zauważymy
tutaj nasz skrypt czyli scripts.js jeżeli tutaj kliknę to widzimy
że dokładnie w tym miejscu w kodzie button.text zostało to
zmienione i w ten sposób możemy znaleźć która linijka kodu konkretnie
modyfikuje nam takie drzewo dom oczywiście możemy sobie
tutaj przejść dalej czyli zrobić step over i zauważ że
ten przycisk teraz nie ma żadnego tekstu bo jquery ten text tak naprawdę wyczyściło
możemy zobaczyć dokładnie jak to działa i możemy sobie tak przeskakiwać
do kolejnych funkcji aż wreszcie zobaczymy że zostało
to zmienione w tym przypadku akurat nas nie interesowało konkretnie jak działa jquery
ale jak widzisz również możemy znaleźć który skrypt to zainicjował więc
może to być bardzo przydatne jeżeli jakiś skrypt zmienia coś na twojej stronie albo dodaje
jakąś klasę nie wiesz skąd ona się bierze to możesz sobie taki breakpoint postawić
ważne że on tutaj jest widoczny i wtedy możesz
po prostu wejść tutaj z powrotem i go odznaczyć czyli tutaj
będzie sygnalizacja że coś w tym miejscu zostało postawione jakiś breakpoint
podobnie jest jak klasę hover na przykład ustawialiśmy też widzieliśmy że coś tutaj
jest więc taka kuleczka oznacza zawsze że w tym miejscu coś zostało ustawione
jak jesteśmy przy tym temacie na przykład kliknięcia wykonywania
pewnych akcji to chciałbym tutaj przy okazji również pokazać że kiedy mamy jakiś
element zaznaczony to oprócz tego że widzimy tutaj jego style i tak dalej to
będziemy widzieli dom breakpoints okej to chciałem ci jeszcze pokazać że
jeżeli przejdziemy do dom breakpoints to będziemy tutaj widzieli te breakpointy możemy je odznaczyć
ale również ciekawą mamy tutaj zakładkę event listeners ono nam pokazuje
że do tego elementu zostały przypisane jakieś zdarzenia mamy zdarzenie
kliknięcia na ten właśnie konkretny przycisk i zostało to przepisane
przez jquery to niestety nam dużo nie mówi bo nie wiemy gdzie w naszym kodzie
przypisaliśmy takie zdarzenie ale chrome devtools potrafi tutaj współpracować
z różnymi bibliotekami i frameworkami i jeżeli zaznaczymy tę opcję to wykluczy
już jquery a pokaże nam gdzie w naszym skrypcie zauważ przypisaliśmy
do tego elementu zdarzenie kliknięcia więc to również jest bardzo przydatne jeżeli chcesz
na konkretnym elemencie zobaczyć jakie zdarzenia zostały do niego przypisane i
wtedy będziesz mógł je sobie po prostu zdebugować jeżeli ich będzie za dużo albo będzie
jakieś które będzie sprawiało ci problemy powiedzmy klikasz na jakiś element i wykonuje się
zbyt wiele akcji których ty tam nie przypisałaś wtedy sobie tutaj zerknij
jakie inne skrypty mogły przypisać na przykład zdarzenie kliknięcia do tego elementu