Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как в браузерах реализуются функции DOM (например createElement) (https://javascript.ru/forum/misc/21238-kak-v-brauzerakh-realizuyutsya-funkcii-dom-naprimer-createelement.html)

iamme 02.09.2011 10:00

Как в браузерах реализуются функции DOM (например createElement)
 
Вопрос странный, но все-таки задам. Я новичок, и вроде отдельно с JS (что такое прототип, объект) все понятно. Но вот как это работает вместе с DOM и браузером - загадка.
Мне интересно, на каком языке браузеры выполняют функции DOM интерфейса, например createElement. Допустим, программист добавляет на HTML страницу новый элемент, то есть выполняет createElement и потом добавляет этот элемент в HTML тоже с помощью функции DOM. То есть браузер должен изменить HTML и отобразить новый HTML.
Что при этом происходит? Внутри браузера есть еще какая-то JS библиотека, в которой присутствует функция createElement (и прочие функции DOM), и на JS создается и добавляет этот самый элемент? Если да, то где посмотреть реализацию этой функции (текст на JS)?
В браузерах есть JS интерпретатор, например SpiderMonkey на СИ. Может это уже он делает? Я запуталась. Подскажите, плиз. Весь процесс.

Kolyaj 02.09.2011 10:02

А какая разница, кто это делает?

iamme 02.09.2011 10:07

разница есть; например, я не могу понять, где просмотреть текст этой функции createElement. Может ее вообще не имеет смысла искать, так как она не на JS реализована??

Kolyaj 02.09.2011 10:42

Разумеется она реализована не на JS. Но даже если бы на JS, я не понимаю, зачем нужно смотреть исходный код этой функции.

iamme 02.09.2011 10:50

такая уж я диггер :)
не то чтоб прямо именно эта функция интересовала, просто нужно было доказательство, на чем там она написана.

а на чем, если не на JS? Она непосредственно выполняется интерпретатором JS (например spidermonkey в FF)? Почему ее нет в JS reference https://developer.mozilla.org/en/JavaScript/Reference наряду с базовыми объектами и функциями?

чувствую, вопросы некорректные, но я как раз и пытаюсь понять, в чем некорректность.

Kolyaj 02.09.2011 11:57

Цитата:

Сообщение от iamme
а на чем, если не на JS?

Обычно на C++ браузеры пишут. На нём же и DOM реализован.

Цитата:

Сообщение от iamme
Почему ее нет в JS reference https://developer.mozilla.org/en/JavaScript/Reference наряду с базовыми объектами и функциями?

Потому что это функция не JavaScript, а DOM. DOM -- отдельный стандарт, не относящийся к конкретному языку.

B@rmaley.e><e 02.09.2011 16:13

iamme, http://mxr.mozilla.org/mozilla-beta/...=createElement + http://codesearch.google.com/#OAMlx_...ment.cpp&l=948

iamme 02.09.2011 20:26

спасибо! доказательства получены :)


Часовой пояс GMT +3, время: 16:56.