Wprowadzenie do Narzędzi deweloperskich w Chrome, część 1

Wstęp

Google Chrome to bogata i zaawansowana przeglądarka internetowa, która jest pionierem w zakresie możliwości, jakie dają aplikacje internetowe. Dołożyliśmy wszelkich starań, aby zapewnić użytkownikom bardzo szybkie, stabilne i rozbudowane funkcje przeglądania. Google dba też o zadowolenie deweloperów takich jak Ty. Narzędzia dla programistów, które są dostępne w Chrome i Safari, umożliwiają programistom i programistom stron internetowych głębszy dostęp do kodu przeglądarki i aplikacji internetowej.

Narzędzia dla programistów są częścią projektu open source Webkit. Większość omówień w tym artykule dotyczy zarówno Google Chrome, jak i Safari. Zrzuty ekranu zostały jednak wykonane w przeglądarce Google Chrome 6, dlatego mogą występować niewielkie różnice między przeglądarką.

W tym artykule omówimy ogólnie narzędzia dla deweloperów i wyróżnimy najpopularniejsze oraz najbardziej przydatne funkcje. Naszymi docelowymi odbiorcami są programiści stron internetowych, którzy nie znali Narzędzi dla programistów lub jeszcze ich nie badali. Nawet jeśli jesteś doświadczonym programistą stron internetowych, jesteśmy pewni, że przyda się Ci pewna wskazówka.

Jeśli Twoja instancja narzędzi dla programistów nie zgadza się ze zrzutami ekranu z tego artykułu, zalecamy uaktualnienie do wersji 5. Pozwoli Ci to korzystać z opisanych tu funkcji.

Opis

Ogólnie dostępnych jest 8 głównych grup narzędzi dla programistów, a ich możliwości są poszerzane z każdą wersją. Chrome 5 oferuje teraz elementy, zasoby, skrypty, oś czasu, profile, miejsce na dane, audyty i konsolę.

Elementy

Karta Elementy.
Karta Elementy

Narzędzie Elementy pozwala zobaczyć stronę internetową w takiej postaci, jaką widzi przeglądarka. Oznacza to, że w narzędziu Elementy możesz zobaczyć nieprzetworzony kod HTML, style CSS i obiektowy model dokumentu oraz manipulować nimi w czasie rzeczywistym.

Zasoby

Zasoby.
Karta Zasoby

Dzięki narzędziu Zasoby możesz się dowiedzieć, których komponentów strona internetowa lub aplikacja żąda od serwerów WWW, jak długo trwa przetwarzanie tych żądań i jaką przepustowość jest wymagana. Możesz też wyświetlić nagłówki żądań HTTP i odpowiedzi dla każdego zasobu. Narzędzie Zasoby to doskonały sposób na przyspieszenie czasu wczytywania strony.

Skrypty

Skrypty.
Karta Skrypty

Aby zajrzeć do wnętrza kodu JavaScript strony, użyj narzędzia Skrypty. Tutaj znajdziesz listę skryptów wymaganych przez stronę oraz w pełni polecany debuger skryptów. Możesz nawet na bieżąco zmieniać kod JavaScript.

Oś czasu

Karta Oś czasu.
Karta Oś czasu

Dzięki narzędziu Oś czasu masz dostęp do zaawansowanej analizy szybkości i czasu, która umożliwia wgląd w różne działania zza kulis działania Chrome. Możesz się dowiedzieć, ile czasu przeglądarka potrzebuje na obsługę zdarzeń DOM, renderowanie układów stron i malowanie okna.

Profile

Skuteczność.
Karta Skuteczność

Narzędzie Profile pomaga przechwytywać i analizować wydajność skryptów JavaScript. Możesz na przykład dowiedzieć się, które funkcje wymagają najwięcej czasu i dowiedzieć się, gdzie dokładnie musisz przeprowadzić optymalizację.

Miejsce na dane

Karta Miejsce na dane.
Karta Miejsce na dane

Nowoczesne aplikacje internetowe wymagają większej trwałości niż tylko pliki cookie, a narzędzie Pamięć masowa pozwala śledzić i debugować dane z pamięci lokalnej przeglądarki oraz wykonywać na niej zapytania. Narzędzie to może wyświetlać dane przechowywane w lokalnych bazach danych, pamięci lokalnej, pamięci sesji i plikach cookie oraz wykonywać dotyczące ich zapytania.

Kontrola

Kontrola.
Karta Kontrola

Narzędzie Audyt jest jak siedzi obok konsultanta ds. optymalizacji witryny. Narzędzie to może przeanalizować wczytywaną stronę, a następnie przedstawić sugestie i metody optymalizacji, które umożliwiają skrócenie czasu wczytywania strony oraz zwiększenie postrzeganej (i rzeczywistej) szybkości działania.

Konsola

Console (Konsola).
Karta Konsola

Narzędzia dla programistów oferują w pełni wyposażoną konsolę. W konsoli możesz wpisać dowolny kod JavaScript i w sposób programowy wchodzić w interakcję ze stroną.

Uruchamianie

Z poziomu Chrome możesz łatwo uruchomić Narzędzia dla programistów.

W dowolnym systemie operacyjnym możesz kliknąć prawym przyciskiem myszy dowolny element na stronie i wybrać opcję „Zbadaj element” z menu kontekstowego. Otworzy się narzędzia dla programistów i przejdziesz od razu do klikniętego elementu.

Aby to zrobić, otwórz w przeglądarce Chrome http://www.google.com. Kliknij logo Google prawym przyciskiem myszy, aby wyświetlić te opcje:

Otwieram inspektora.
Otwieranie inspektora

Kliknięcie „Zbadaj element” spowoduje otworzenie Narzędzi dla programistów, które powinny wyglądać mniej więcej tak:

Wewnątrz inspektora elementów.
W inspektorze elementów

Zwróć uwagę, że na karcie Elementy otworzyły się Narzędzia dla deweloperów, a następnie automatycznie przekierowano do i wyróżniono tag <img> dotyczący logo Google. To bardzo przydatne rozwiązanie, jeśli ciekawi Cię, jaki kod HTML wygenerował konkretny element strony.

Narzędzia dla programistów możesz też otwierać za pomocą prostego skrótu klawiszowego. W zależności od systemu operacyjnego wykonaj te czynności:

  • W systemach Windows i Linux wybierz klucze Control-Shift-J.
  • Na Macu wybierz klawisze Command-Option-J.

Możesz też otworzyć narzędzia z głównego menu przeglądarki.

Na Macu i na głównym pasku menu aplikacji wybierz Widok, Programista, Narzędzia dla programistów.

Otwieranie Narzędzi deweloperskich na komputerze Mac.
Otwieranie Narzędzi deweloperskich na komputerze Mac

Na komputerze z systemem Windows użyj menu Strona w prawym górnym rogu i wybierz Programista, Narzędzia dla programistów.

Otwieram Narzędzia deweloperskie w systemie Windows.
Otwieranie Narzędzi deweloperskich w systemie Windows

Po przygotowaniu i otwarciu Narzędzi dla programistów przyjrzyjmy się elementom na stronie głównej Google.

Elementy

Wybieram kartę Elementy.
Wybieranie karty Elementy

Pierwsza karta w Narzędziach dla programistów to Elementy. Jest to okno w strukturze strony internetowej wyświetlane w takiej postaci, jaką widzi przeglądarka.

Przeglądanie DOM

Karty Elementy pojawiają się często, gdy trzeba zidentyfikować fragment kodu HTML dotyczący pewnego aspektu strony. Możesz na przykład zapytać, czy obraz ma atrybut HTML „id” i jaka jest jego wartość.

Karta Elementy jest czasami lepszym sposobem na „wyświetlenie źródła” strony. DOM strony będzie odpowiednio sformatowany na karcie Elementy oraz będzie zawierać elementy HTML, elementy nadrzędne i potomne. Zbyt często strony, które odwiedzasz, mają zminifikowany lub po prostu brzydki kod HTML, co utrudnia zrozumienie struktury strony. Za pomocą karty Elementy możesz zobaczyć rzeczywistą strukturę strony.

Poniżej znajdują się na przykład dane wyjściowe ze źródła „wyświetl źródło” na stronie głównej Google.

Zmniejszone źródło Google.com.
Zminimalizowane źródło Google.com

Trudno odczytać powyższe źródło, ponieważ jest zoptymalizowane i zminimalizowane. Format jest odpowiedni dla klientów i serwerów, ale dla programistów jest trudny.

Jeśli chcesz sprawdzić źródło strony, użyj karty Elementy, aby wyświetlić przejrzystą i podświetloną składnię hierarchię elementów.

Kod HTML drukarki w narzędziu Elements Investor.
Kod HTML drukarki Elements Investor

Karta Elementy umożliwia też przeglądanie, interakcję, a czasem nawet zmianę stylów, danych, właściwości i detektorów zdarzeń na stronie.

Przeglądanie stylów

Kaskadowy charakter kodu CSS sprawia, że przeglądarka Style na karcie Elementy jest bardzo przydatna. Czasami style się zawijają i pojawiają się niezamierzone elementy wizualne. Wiedza o tym, która reguła stylu jest stosowana przez przeglądarkę do danego elementu, pomaga w debugowaniu tego typu błędów.

Kliknięcie dowolnego elementu na karcie Elementy spowoduje wyświetlenie wszystkich powiązanych z nim stylów.

Style CSS w inspektorze.
Style CSS w inspektorze

Na zrzucie ekranu powyżej widać, że jesteśmy w stanie rozpoznać wszystkie stosowane atrybuty stylu. Na przykład dopełnienie pochodzi bezpośrednio z atrybutu stylu elementu <img>. ale szerokość i wysokość pochodzą z odpowiednich atrybutów natywnych. Co ciekawe, style są też dziedziczone z tagu <center>, tagu <body> i innych elementów.

Dobrze jest zobaczyć poszczególne style i ich źródła, ale bardzo przydatne jest też poznanie ostatecznego zestawu stylów po jego obliczeniu i zastosowaniu do elementu. Ostateczną wersję produktu możesz zobaczyć, wybierając menu Styl wynikowy, jak pokazano na zrzucie ekranu poniżej.

Wyświetlane są również style obliczeniowe przeglądarki.
Wyświetlane są również style obliczone w przeglądarce.

Następnie przyjrzymy się pokrótce innym funkcjom dostępnym na karcie Elementy. W kolejnych artykułach omówimy dokładniej te kwestie.

Model prostokąta

Aby zobaczyć model pola zastosowany do wybranego elementu, wybierz menu Dane:

Wyświetlanie modelu pola elementu.
Wyświetlanie modelu pola elementu

Właściwości elementu

Po wybraniu menu Właściwości możesz zobaczyć wszystkie właściwości elementu w takiej postaci, w jakiej zobaczyłby je JavaScript i model DOM:

Wyświetlanie właściwości elementu DOM.
Wyświetlanie właściwości elementu DOM.

Odbiorniki

W menu Odbiorniki możesz też zobaczyć, do których elementów są dołączone detektory zdarzeń lub które wyświetlają się jako dymki:

Wyświetlanie detektorów zdarzeń elementu DOM.
Wyświetlanie odbiorników zdarzeń elementu DOM.

Podsumowanie

Na karcie Elementy jest dostępnych wiele funkcji, a kolejne artykuły będą bardziej szczegółowe.

Karta Elementy pozwala sprawdzić, jak strona wygląda w przeglądarce. Typowe problemy, takie jak „Jak oblicza się ten styl?” czy „Jakie tagi HTML wygenerowały ten komponent?” można szybko i łatwo rozwiązać na karcie Elementy.

Potraktuj kartę Elementy jak nadmiarowe źródło wyświetlania, dzięki czemu będziesz dokładnie widzieć swoją stronę.

Po przejrzeniu strony być może zastanawiasz się, jak kod HTML, CSS i obrazy znalazły się tam po raz pierwszy. Karta Zasoby, opisana poniżej, przedstawia, w jaki sposób przeglądarka klienta i serwer WWW komunikują się w celu wysłania tych zasobów.

Zasoby

Gdy aplikacja zacznie działać, następnym krokiem powinno być zoptymalizowanie wydajności sieci i przepustowości. Staraj się przesyłać aplikację z serwera do klienta jak najszybciej i najwydajniej. Użytkownicy podziękują Ci za szybkie wczytywanie się stron, zaoszczędzisz na przepustowości łącza i zasobach serwera, a także uzyskasz lepszy wynik w rankingu wyników wyszukiwania Google (co teraz uwzględnia szybkość witryny).

Karta Zasoby w Narzędziach dla programistów to okno na komunikację między serwerem WWW a przeglądarką klienta. Widać wszystkie zasoby żądane przez przeglądarkę (to zawsze jest bardzo zaskakujące), czas potrzebny na ich odebranie z serwera oraz wykorzystanie przepustowości podczas transferu.

Jak na ironię, uruchomienie karty Zasoby ma wpływ na wydajność wczytywania strony, dlatego jest domyślnie wyłączone. Gdy otworzysz tę funkcję po raz pierwszy, musisz ją włączyć dla przeglądanej strony.

Włączam śledzenie zasobów.
Włączenie śledzenia zasobów.

Zalecamy pozostawienie domyślnego ustawienia „Włącz tylko w tej sesji”, ponieważ nie spowoduje to naliczenia niepotrzebnie obniżonej wydajności. Po kliknięciu „Włącz śledzenie zasobów” strona załaduje się ponownie, a narzędzia dla deweloperów będą monitorować i wyświetlać zasoby wysyłane z serwera.

Zrzut ekranu poniżej pokazuje wymagane i wczytane zasoby strony głównej Google.

śledzenie zasobów w Google.com.
Śledzenie zasobów w Google.com.

Na ekranie jest bardzo dużo informacji, więc przeanalizujmy je krok po kroku.

Domyślne działanie pokazuje, ile czasu zajęło żądanie i załadowanie wszystkich zasobów strony. Możesz się nie dziwić, jeśli przewiniesz listę Zasoby w dół, ponieważ nie wiesz, ile indywidualnych żądań zgłasza klient. Duża liczba żądań od klienta może znacząco wpłynąć na wydajność. Uzyskanie informacji o żądanych zasobach jest pierwszym krokiem do optymalizacji i ostatecznego zmniejszenia zasobów.

Jeśli interesują Cię tylko obrazy lub arkusze stylów, możesz filtrować typ zasobu, korzystając z menu bezpośrednio pod głównym oknem karty.

Wyświetlane są tylko zasoby graficzne.
Wyświetlam tylko zasoby graficzne.

Widzimy także kolejność żądań zasobów. Korzystając z osi czasu, możesz lepiej zrozumieć, dlaczego niektóre elementy na stronie pojawiają się później niż inne.

Po zapoznaniu się ze wszystkimi żądanymi zasobami i ich sposobem tworzenia całego harmonogramu żądań możesz przejść do poszczególnych zasobów.

Jeśli zauważysz, że przy każdym otwarciu strony są wysyłane jakieś zasoby, oznacza to, że nagłówki buforowania nie są prawidłowo skonfigurowane. Aby wyświetlić wszystkie nagłówki danego zasobu, kliknij go na liście po lewej stronie.

Wyświetlam nagłówki żądań.
Wyświetlanie nagłówków żądań.

Widok Nagłówki umożliwia ustawienie oczekiwanego kodu odpowiedzi HTTP i dostarczenie odpowiednich nagłówków. Jeśli na przykład zasób jest rzadko zmieniany lub nigdy się nie zmienia, serwer powinien ustawić nagłówek Expires na daleko w przyszłości. Informuje ona przeglądarkę, że żądanie zasobu nie powinno być do tego czasu wysyłane ponownie. Zmniejsza to liczbę połączeń HTTP wymaganych przez Twoją stronę, a tym samym przyspiesza działanie witryny.

Podsumowanie

Karta Zasoby obejmuje znacznie więcej funkcji, co omówimy w kolejnym artykule.

Na karcie Zasoby można się dowiedzieć, w jaki sposób przeglądarka klienta komunikuje się z serwerem WWW. Na podstawie tych informacji, takich jak czas żądań, rozmiar żądań i ich kolejność, możesz wprowadzać inteligentne optymalizacje, aby zmniejszyć obciążenie serwera i koszty, a także zwiększyć szybkość i wygodę użytkowników.

Szybkość jest bardzo ważna dla witryny, użytkowników i wyszukiwarek. Po zmniejszeniu liczby i rozmiaru zasobów i prowadzeniu odpowiednich rozmów HTTP następnym krokiem jest zbadanie i zoptymalizowanie skryptów działających na Twojej stronie. Na szczęście karta Skrypty, omówiona poniżej, spełnia to zadanie.

Dodatkowe materiały

Więcej informacji o narzędziach dla programistów znajdziesz w tych artykułach:

Oczywiście zaglądaj na stronę html5rocks.com, gdzie znajdziesz część 2. tego artykułu, a także wiele innych świetnych treści dotyczących HTML5 i Chrome.