• 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

Aruba Cloud - Virtual Private Server VPS
+2 głosów
296 wizyt
pytanie zadane 15 kwietnia 2024 w Inne języki przez niezalogowany
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 2024 przez Sefinek Obywatel (1,710 p.)
Najlepiej to na chromium bazować
komentarz 15 kwietnia 2024 przez niezalogowany
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 2024 przez Comandeer Guru (606,920 p.)
wybrane 15 kwietnia 2024
 
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 2024 przez niezalogowany
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 2024 przez Panelinio Stary wyjadacz (10,530 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 2024 przez reaktywny Nałogowiec (46,230 p.)
edycja 15 kwietnia 2024 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 2024 przez niezalogowany
edycja 15 kwietnia 2024
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ź 468 wizyt
pytanie zadane 18 kwietnia 2024 w Inne języki przez niezalogowany
–1 głos
1 odpowiedź 211 wizyt
0 głosów
3 odpowiedzi 328 wizyt
pytanie zadane 16 września 2020 w Inne języki przez kondzix_ez Obywatel (1,930 p.)

93,335 zapytań

142,330 odpowiedzi

322,415 komentarzy

62,669 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...