• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Własna przeglądarka takie pytanie a nawet dwa

Object Storage Arubacloud
+2 głosów
166 wizyt
pytanie zadane 15 kwietnia w Inne języki przez Mist Obywatel (1,030 p.)
Dobrze te pytanie jest czysto teoretyczne zacznijmy od początku trafiłem na post w którego kom pada zabawny pomysł by napisać własną przeglądarkę przemijając tematy na forum w poście o tym temacie dowiedziałem się że sama przeglądarka jest interpreterem 3 języków (ps tak myślę a PHP i MySQL a nie tylko PHP bo MySQL się nie liczy chyba znaczy nieważne )

Reasumując szukam odp na dwa pytania

 

1.czemu i czy można napisać przeglądarkę w już istniejących HTML CSS js ? No i

 

2.intepretatory itp wytłumaczy mi jak działa to w przeglądarce wiem jak działa interpretator chodzi bardziej że jeżeli muszą pisać nowy interpretator dla znanych już języków to oznacza to tak naprawdę że przeglądarka po części jest innym językiem własnym językiem programowania

 

Oto pytania na które szukam odpowiedzi

 

 

z góry dziękuję
komentarz 15 kwietnia przez Sefinek Obywatel (1,180 p.)
Najlepiej to na chromium bazować
komentarz 15 kwietnia przez Mist Obywatel (1,030 p.)
Witaj,tak to fakt ale to pytania które mnie zaciekawiły nie obchodzi mnie szczerze chromium czy inne przeglądarki dlatego że te pytania z bazowaniem nie mają nic pomiędzy dla mnie  a szukam odp na te dwa pytania a bazować na chromium nie chciem jednak zawsze to choć trochę pomocne dziękuję za opinię

2 odpowiedzi

+4 głosów
odpowiedź 15 kwietnia przez Comandeer Guru (602,560 p.)
wybrane 15 kwietnia przez Mist
 
Najlepsza

Nie, przeglądarka nie jest interpreterem. To o wiele bardziej skomplikowana bestia.

Na takim najbardziej podstawowym poziomie można wyróżnić w przeglądarce dwa silniki: renderowania i JS-a. Ten od renderowania zajmuje się parsowaniem HTML-a i CSS-a w celu stworzenia kilku struktur drzewiastych:

  • DOM – czyli drzewka HTML-a,
  • CSSOM – czyli drzewka stylów (CSS-a),
  • renderowania – czyli połączenia tych dwóch drzewek w to, co ma zostać wyrenderowane.

Na podstawie drzewka renderowania przeglądarka następnie "rysuje" stronę na ekranie. Chyba najłatwiej to porównać do tego, jak działa canvas w HTML-u.

Oczywiście, żeby nie było za łatwo, równocześnie cały czas działa silnik JS, który zajmuje się odpalaniem kodu JS na stronie. I ten kod JS może wpływać na wspomniane wcześniej drzewka. A każda zmiana musi zostać wyrenderowana. Ergo: renderowanie odbywa się w pętli (coś na wzór requestAnimationFrame()). To, jak dokładnie silnik renderujący jest połączony z tym JS-owym, to można sobie prześledzić w specyfikacji HTML, bo tam jest opis tzw. event loopa (czyli w uproszczeniu – części pętli, o której powiedziałem).

Do tego dochodzi obsługa wszystkich Web APIs, w tym np. dostęp do Bluetootha, integracja z systemem operacyjnym, itd. A Web APIs wymagają odpowiedniego poziomu bezpieczeństwa (czyli trzeba zaimplementować sandbox + Same Origin Policy) oraz często wydajności (stąd praktycznie żaden przeglądarkowy silnik JS nie jest już tylko interpreterem, ale także kompilatorem). A potem wchodzi zabawa z rzeczami pokroju WebGL czy WebGPU, gdzie trzeba gadać bezpośrednio z GPU. Więc nie, silnika przeglądarki nie da się (sensownie) pisać w technologiach webowych. Tutaj praktycznie jedynym wyborem są języki pokroju Rusta czy C++.

A przecież pod spodem jest jeszcze cała obsługa protokołów: HTTP (we wszystkich trzech wersjach), WebSockets, itd. Czy wspominałem już, że standardy sieciowe zmieniają się praktycznie codziennie i przeglądarka musi te zmiany uwzględniać?

Na rynku są obecnie trzy główne silniki przeglądarek (Blink od Chromium, Gecko od Firefoksa i WebKit od Safari). Ilość pracy i czasu, jakie są w nie wkładane, oraz to, jak dynamiczne są standardy sieciowe, skutecznie blokuje pojawienie się jakiegokolwiek nowego silnika. Więc jeśli chcesz tworzyć własną przeglądarkę, to raczej nie tędy droga. Najsensowniej jest wziąć rozwiązanie pokroju Electrona i stworzyć po prostu swoje UI.

komentarz 15 kwietnia przez Mist Obywatel (1,030 p.)
Witaj,tak to prawda to bestia i dziękuję za odp na moje pytanie nr 2 już wszystko wiem jednak fakt przeglądarka ma dużo zajęć na szczęście na razie i na najbliższy czas nie zamierzam utworzyć takiego tworu jak przeglądarka a tym bardziej działająca i rozbudowana
komentarz 17 kwietnia przez Panelinio Mądrala (6,270 p.)
W każdym bądź razie jest to realne...
Jak kiedyś usłyszycie i jakimś PotatoWeb - prawdziwie polska przeglądarka, to wiedzcie, że pomysł narodził się tutaj xD
0 głosów
odpowiedź 15 kwietnia przez reaktywny Nałogowiec (41,090 p.)
edycja 15 kwietnia przez reaktywny

Bardzo prostą przeglądarkę, jak wykorzystasz gotowy silnik zrobisz w kilkanaście minut. Bardzo łatwo jest zrobić w pythonie i PyQt lub PySide lub GTK. I masz przeglądarkę cross platform, która działa i spełnia podstawowe funkcje, nie zrobisz w kwadrans FF czy Chrome, ale ich namiastkę tak. Strony można przeglądać :)

Jeszcze łatwiej i szybciej zrobisz przeglądarkę pod WInzgrozę, wystarczy C#, np. WinForms i kontrolka WebBrowser i masz w około 5 minut przeglądarkę.

Pewnie, żeby zadbać o funkcjonalność i dodać różne bajery to już nie jest kwestia minut, tylko dni, tygodni,........., itd.

przemijając tematy na forum w poście o tym temacie dowiedziałem się że sama przeglądarka jest interpreterem 3 języków (ps tak myślę a PHP i MySQL a nie tylko PHP bo MySQL się nie liczy chyba znaczy nieważne )

PHP nie, JS - tak. PHP jest wykonywane po stronie serwera i "na frontcie" dostajesz kod HTML+CSS+JS. Przeglądarka walczy z "frontem". Plus dodatkowo - w ostatnich latach - WebAssembly.

 

1
komentarz 15 kwietnia przez Mist Obywatel (1,030 p.)
edycja 15 kwietnia przez Mist
Witam, naprawdę ci dziękuję za wyjaśnienie jednak ta odp odpowiedziała mi na moje pytanie nr 1 choć pewny nie jestem jednak w każdym razie pomogłeś dzięki.okej dalsze wyjaśnienie mi trochę wiencej wyjaśnilo

Podobne pytania

–1 głos
1 odpowiedź 182 wizyt
pytanie zadane 18 kwietnia w Inne języki przez Mist Obywatel (1,030 p.)
0 głosów
3 odpowiedzi 222 wizyt
pytanie zadane 16 września 2020 w Inne języki przez kondzix_ez Obywatel (1,910 p.)
0 głosów
2 odpowiedzi 2,097 wizyt
pytanie zadane 12 stycznia 2019 w Java przez Hardwell Dyskutant (8,980 p.)

92,666 zapytań

141,564 odpowiedzi

320,021 komentarzy

62,032 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...