2011-09-22 13 views
31

Przede wszystkim, nie jestem zainteresowany w całym procesie żądanie-odpowiedź jako skierowana przez to pytanieOpisz proces renderowania strony w przeglądarce?

What is the complete process from entering a url to the browser's address bar to get the rendered page in browser?

chcę wiedzieć, co dzieje się w przeglądarce, po otrzymaniu odpowiedzi HTML z serwer. Celem zadania tego pytania jest zrozumienie wewnętrznych szczegółów skryptów po stronie klienta. Korzystne byłoby również wyjaśnienie w abstrakcyjnych pojęciach, z czego składa się przeglądarka internetowa. Możesz nazwać je silnikiem CSS, silnikiem javascript itp. Celem jest precyzyjna wizualizacja rozwoju mojej strony internetowej.

Niestety, nie znalazłem żadnych zasobów internetowych zajmujących się tym problemem. Proszę wybaczyć mi, jeśli istnieją zasoby, które wyjaśniają te pojęcia. Możesz wskazać zasoby (książki itp.), Jeśli to pytanie jest zbyt wyczerpujące, aby odpowiedzieć.

+0

[kod źródłowy WebKit] (http://www.webkit.org/building/checkout.html)/[kod źródłowy Mozilla] (https://developer.mozilla.org/en/Download_Mozilla_Source_Code) – Quentin

+0

Szukam jakiegoś abstrakcyjnego opisu, który pomaga przeciętnemu twórcy stron internetowych wizualizować proces tworzenia skryptów po stronie klienta. Jestem pewien, że nawet jeśli ktoś napisze mozillę od podstaw, to również wizualizuje to w jakiś abstrakcyjny sposób. – pphanireddy

+0

@pphanireddy, Przeczytałem "Jak działają przeglądarki" i zastanawiam się, czy podczas analizowania html i spotkania

15

Proszę przejść poniżej etapów i powinno być jasne, z żądaniem cyklu i sposób renderowania odpowiedzi.

  1. Wpisz adres URL na pasku adresu w preferowanej przeglądarce.

  2. Przeglądarka analizuje adres URL, aby znaleźć protokół, host, port i ścieżkę.

  3. Tworzy żądanie HTTP (który był najprawdopodobniej protokół)

  4. dotrzeć do gospodarza, to musi najpierw przetłumaczyć czytelnej serwerado numer IP, a robi to wykonując DNS odnośnika na hoście

  5. Następnie gniazdo musi być otwarty z komputera użytkownika do tego numeru IP na porcie określonym (w większości portów często 80)

  6. Gdy połączenie jest otwarte, żądanie HTTP wysyłane do hosta Host przesyła żądanie do serwera s oftware (najczęściej Apache) skonfigurowany do nasłuchiwania na określonym porcie

  7. Serwer sprawdza żądanie (najczęściej tylko ścieżka) i uruchamia wtyczkę serwera potrzebną do obsługi żądania (odpowiada używanemu językowi serwera, PHP, Java, .NET, Python?)

  8. Wtyczka uzyskuje dostęp do pełnego żądania i rozpoczyna przygotowywanie odpowiedzi HTTP.

  9. Aby skonstruować odpowiedź, dostępna jest (najprawdopodobniej) baza danych.Wyszukiwanie bazy danych odbywa się na podstawie parametrów w ścieżce (lub danych) żądania

  10. Dane z bazy danych wraz z innymi informacjami, które wtyczka postanawia dodać, są łączone w długi ciąg tekstu (prawdopodobnie HTML).

  11. Wtyczka łączy dane z niektórymi metadanymi (w postaci nagłówków HTTP) i wysyła odpowiedź HTTP z powrotem do przeglądarki.

  12. Przeglądarka odbiera odpowiedź i analizuje HTML (który z prawdopodobieństwem 95% jest uszkodzona) w odpowiedzi

  13. drzewo DOM jest zbudowany z łamanego HTML

  14. Nowe żądania są wykonane na serwerze dla każdego nowego zasobu, który znajduje się w źródle HTML (zazwyczaj obrazy, arkusze stylów i pliki JavaScript).

  15. Powróć do kroku 3 i powtórz dla każdego zasobu.

  16. Arkusze stylów są przetwarzane i renderowania informacji w każdy dostaje dołączone do węzła dopasowania w drzewie DOM

  17. JavaScript jest analizowany i wykonywany, a węzły DOM są przemieszczane i informacje o stylu jest odpowiednio aktualizowany

  18. przeglądarka renderuje stronę na ekranie zgodnie z drzewa DOM oraz informacji o stylu dla każdego węzła

  19. zobaczysz stronę na ekranie

  20. Denerwujesz się, że cały proces był zbyt powolny.

+1

Przeglądarka rozpoczyna renderowanie strony zaraz po przeanalizowaniu pierwszego elementu HTML. Z pewnością nie czeka na zakończenie drzewa DOM, a tym bardziej na załadowanie wszystkich zewnętrznych zasobów. Być może możesz edytować swoją odpowiedź, aby wyjaśnić, że co najmniej niektóre kroki w grupie 13-18 przebiegają jak potoki (jeden element na raz?), A nie sekwencyjnie. – max

Powiązane problemy