Google Blink (новая ветка WebKit): что означает «Перемещение DOM в Javascript»?

12

Из блога Blink :

Наконец, мы хотели бы изучить еще более масштабные идеи, такие как перевод всей объектной модели документа (DOM) в JavaScript.

Что это значит? Означает ли это, что DOM WebKit в настоящее время написан не на JavaScript, а на каком-то другом языке? Означает ли это, что они хотят предоставить больше открытых доступа к DOM? Или что?

BSalita
источник

Ответы:

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 и поэтому не очень разбираюсь.

rioki
источник
1
Я не думаю, что есть какие-либо издержки при связывании специальных типов по сравнению с «нативными» типами движков JavaScript, так как этот движок написан на C ++, и все типы реализованы с использованием одного и того же механизма. Что может быть сохранено с использованием собственных типов JavaScript, так это код, так как большая часть кода должна быть продублирована для собственных типов и типов DOM.
Ян Худек
Из того, что я знаю (например, из списка рассылки es-обсуждения), это определенно последнее. Существует желание иметь DOM , написанный на JS, а не только из - за сортировочное стоимости (которая является там), но и для удаления как много из «экзотических», «неродных», «особые» объектов из языкового пространства, возможно. DOM - это большая PITA для языковых дизайнеров, потому что она особенная.
Херби
По этой теме недавно был разработан документ по дизайну docs.google.com/document/d/…
subbul