Google Blink (nowy widelec WebKit): Znaczenie „Przenoszenie DOM do Javascript”?

12

Z bloga Blink :

Na koniec chcielibyśmy zbadać jeszcze większe pomysły, takie jak przeniesienie całego modelu Object Document Model (DOM) do JavaScript.

Co to znaczy? To znaczy pakietu WebKit DOM obecnie nie zakodowane w JavaScript, ale w jakimś innym języku? Czy to oznacza, że ​​chcą ujawnić więcej publicznych osób przystępujących do DOM? Albo co?

BSalita
źródło

Odpowiedzi:

14

Sposób, w jaki go czytam, obejmuje dwie opcje. Ale zanim przyjrzymy się temu, musisz zrozumieć, jak działa stary model.

W większości, jeśli nie we wszystkich implementacjach mechanizmów renderowania HTML, DOM jest implementowany w C lub C ++, a silnik JavaScript jest dodatkiem, który ma eksportowane powiązania do DOM. Ma to sens, jeśli spojrzysz na ewolucję HTML i JavaScript. Ale marnuje się dużo czasu na zbieranie połączeń z JavaScript do C / C ++ iz powrotem.

Pierwsza opcja polega na tym, że DOM jest ściślej związany z silnikiem JavaScript. Zasadniczo obiekty DOM stają się podstawowymi obiektami JavaScript, takimi jak Array. Nie robi to wiele poza ograniczeniem marszowania, ponieważ DOM używa rodzimych typów danych z silnika JavaScript. DOM jest następnie nadal implementowany w C lub C ++.

Druga opcja i prawdopodobnie to, co one oznaczają, to faktyczna DOM jest zaimplementowana w JavaScript. Minusem jest to, że dostęp do DOM jest w pełni zinterpretowany, ale z drugiej strony usuwa wszelkie marszowanie. Jest to prawdopodobnie zysk netto, ponieważ DOM i tak jest w większości danymi.

Z drugiej strony nie mogę udzielić jednoznacznej odpowiedzi - nie pracuję dla Google, a zatem nie mam zbyt wiele wglądu.

Rioki
źródło
1
Nie wydaje mi się, aby wiązanie specjalnych typów było narzucone w porównaniu do „rodzimych” typów silników JavaScript, ponieważ silnik ten jest napisany w C ++, a wszystkie typy są implementowane przy użyciu tego samego mechanizmu. Za pomocą rodzimych typów JavaScriptu można zapisać kod, ponieważ w przypadku typów natywnych i typów DOM należy dużo zduplikować.
Jan Hudec
Z tego co wiem (na przykład z listy dyskusyjnej es-dyskusji), to zdecydowanie ta ostatnia. Jest chęć mieć DOM napisany w JS, nie tylko ze względu na punkt etapowy kosztów (co jest tam), ale również do usuwania tyle o „egzotyczne”, „non-native”, „specjalne” obiektów z przestrzeni językowej jako możliwy. DOM to duża PITA dla projektantów języków, ponieważ jest wyjątkowa.
herby
Niedawno istnieje dokument projektowy na ten temat docs.google.com/document/d/…
podpozycja