Объектная модель документа (DOM вкратце) - это интерфейс программирования для документов HTML и XML , представляющий страницу, позволяющую программам изменятьструктура документа, стиль и содержание. Подробнее по этому вопросу.
Необходимое различие между клиентской ( браузер ) и серверной ()Node.js ) и их основные цели:
- На стороне клиента: Доступ и отображение информации в Интернете
- На стороне сервера: обеспечение стабильных и надежных способов доставки веб-информации
Почему в Node.js по умолчанию нет DOM?
По умолчанию Node.js не имеет доступа и не имеет никаких знаний о фактической DOM в вашем собственном браузере.Node.js просто предоставляет данные, которые будут использоваться вашим собственным браузером для обработки и визуализации всего сайта, включая DOM.Сервер предоставляет данные вашему браузеру для использования и обработки.Это - предполагаемый способ.
Почему вы не хотите получать доступ к DOM в Node.js?
Доступ к фактической DOM вашего браузера с помощью Node.js будетпросто вне цели сервера.Роль вашего собственного браузера заключается в отображении данных, поступающих с сервера.Однако это, безусловно, возможно, и существует несколько решений на разных уровнях глубины и разновидностей для предварительного рендеринга, манипулирования или изменения DOM с помощью вызовов AJAX.Посмотрим, что принесут будущие тренды.
Почему вы хотите получить доступ к DOM в Node.js?
По умолчанию вам не нужно обращаться ксобственный, фактический DOM (хотя бы некоторые его данные) с использованием Node.js.На стороне клиента и на стороне сервера разделены с точки зрения роли, функциональности и ответственности на основе многолетнего опыта и знаний.Хотя есть несколько ситуаций, когда для этого есть веские причины:
- Сбор данных об использовании (A / B-тестирование, эффективность UI / UX и обратная связь)
- Безголовое тестирование (Разработка, автоматизация, веб-очистка)
Как получить доступ к DOM в Node.js?
- jsdom : реализация чистого JavaScript, подходит для тестирования вашего собственного проекта, связанного с DOM / браузером
- cheerio : отличное решение, если вам нравится / часто вы используете jQuery
- puppeteer : собственный способ Google обеспечить тестирование без головы с помощью Google Chrome
- собственное решение (ваша возможная будущая ссылка на проект здесь)
Хотя эти решения не предоставляют способ доступа к вашему браузеру,фактический DOM по умолчанию , но вы можете создать проект для отправки некоторой формы данных о вашем DOM на сервер, а затем использовать / renдер / манипулировать этими данными в зависимости от ваших потребностей.
... и да, веб-анализ и веб-разработка с точки зрения инструментов и утилит стали более сложными и, безусловно, более простыми в нескольких областях.