Google Blink (нова виделка WebKit): Значення "Переміщення DOM у Javascript"?


12

З блогу блимати :

Нарешті, ми хотіли б вивчити ще більші ідеї, такі як переміщення всієї моделі об’єкта документа (DOM) в JavaScript.

Що це означає? Чи означає це, що DOM WebKit наразі кодується не в JavaScript, а в іншій мові? Чи означає це, що вони хочуть відкрити більше громадських приєднань до DOM? Або що?

Відповіді:


14

Те, як я його прочитав, є два варіанти. Але перш ніж ми розберемося з цим, ви повинні зрозуміти, як працює стара модель.

У більшості, якщо не у всіх реалізаціях двигунів візуалізації HTML, DOM реалізується на C або C ++, а двигун JavaScript є надбудовою, що має прив'язки, експортовані до DOM. Це має сенс, якщо ви подивитеся на те, як розвивались HTML та JavaScript. Але багато часу витрачається на марширування дзвінків з JavaScript на C / C ++ і назад.

Перший варіант полягає в тому, щоб DOM став тісніше прив’язаний до двигуна JavaScript. В основному об'єкти DOM стають основними об’єктами JavaScript, як-от Array. Це не робить багато, окрім скорочення деякого маршалінгу, оскільки DOM використовує нативні типи даних з механізму JavaScript. Потім DOM все ще реалізується в C або C ++.

Другий варіант, і, мабуть, що вони означають, - це те, що власне DOM реалізується в JavaScript. Недоліком є ​​те, що доступ до DOM повністю інтерпретується, але вгору це усуває будь-які марширування. Це, мабуть, чистий прибуток, оскільки DOM в основному є даними в будь-якому випадку.

Знову ж таки я не можу дати вам однозначної відповіді - я не працюю в Google і, таким чином, не маю такої великої уваги.


1
Я не думаю, що є якісь накладні витрати на прив'язку спеціальних типів порівняно з "рідними" типами двигунів JavaScript, оскільки цей двигун написаний на C ++, і всі типи реалізовані за допомогою одного і того ж механізму. Що можна зберегти, використовуючи нативні типи JavaScript, - це код, оскільки багато коду потрібно дублювати для нативних типів та типів DOM.
Ян Худек

З того, що я знаю (наприклад, із списку розсилки es-обговорюються), це, безумовно, останнє. Існує бажання мати DOM , написаний на JS, а не тільки з - за сортувальне вартості (яка є там), але і для видалення як багато з «екзотичних», «нерідних», «особливі» об'єктів з мовного простору, можливо. DOM - великий PITA для мовних дизайнерів, адже він особливий.
herby

Нещодавно існує проектний документ на цю тему docs.google.com/document/d/…
суббул
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.