Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631

Использование Shadow DOM: скорость и приватность.

24.07.2019, 07:35. Показов 2530. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, поясните плииз его возможности "на пальцах".

Для одного срочного/"горящего" проекта пишу на "чистом" JS сложные компоненты для отображения/редактирования данных. Сложные списки (с кучей дивов, картинок, инпутов в каждой строке), выпадающие списки (календари), сложные таблицы (с кучей вложений)... . И тут посоветовали почитать про Shadow DOM.

Сказали что
1) это ускорит отрисовку (режим "переключения" ДОМов между отлаживаемым и реальным)
2) это позволит "упаковать" компонент в "тень" + защитит их от наглого вмешивания парсерами.

Подскажите сколько в этом правды? "Да/нет" - не охота СЕЙЧАС тратить кучу часов на изучение/тестирование/переписывание компонент, чтобы потом узнать что это не так и есть куча ограничений не позволяющей писать что-нибудь достаточно сложное, или далеко не большинством браузеров поддерживается...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.07.2019, 07:35
Ответы с готовыми решениями:

Включить Shadow DOM в хроме
Как? Добавлено через 48 минут Разобрался

Shadow DOM. Экскурсия по "злачным" местам
Я приветствую всех кто зашел сюда. Тема, что я хочу поднять, многим новичкам не знакома, включая меня. Недавно один из участников...

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

6
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
29.07.2019, 08:52
andyj, оба пункта не правда. Отрисовка будет медленнее, пусть немного. Парсер парсит результат - т.е. готовый DOM. Попрятать компонент - для пользователя сойдёти невидимым, а если из потока удалить, можно кучу проблем горести.
1
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
30.07.2019, 12:53  [ТС]
Цитата Сообщение от atanov Посмотреть сообщение
оба пункта не правда.
А в чем тогда "профит" от технологии? Мне ее знакомый посоветовал который фронтом на фреймворках работает (Vui, Angular) - сказал что там все на этом построено в новых версиях и за счет этого дикий прирост скорости по сравнению с прошлыми версиями и разработка упрощается...

Застрял на изучении https://learn.javascript.ru/shadow-dom - красиво, компактно, "лишнее" скрыто в хроме "по умолчанию" (навело на мысль что новичок не будет знать как подступиться) но не понятно зачем...
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
30.07.2019, 21:12
Лучший ответ Сообщение было отмечено andyj как решение

Решение

Цитата Сообщение от andyj Посмотреть сообщение
Мне ее знакомый посоветовал
Ваш знакомый не компетентен.
Все надстройки призваны облегчить и упростить процесс разработки для программиста. Цена этого - замедление работы, т.к. требуется код надстройки перевести в код для нативного приложения; скорости загрузки, т.к. требуется библиотеку лишнюю подгрузить и т.д. К счастью современные пользовательские устройства обладают впечатляющим быстродействием и внушительной памятью. И для коммерческой разработки требуется скорость создания продукта. Поэтому многие разработчики делают выбор в пользу удобства и скорости.
А проблема в том, что часто неучи, поверхностно изучив модный фреймворк, совершенно не понимают как работает нативный js. Результат очевиден.
3
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
30.07.2019, 23:35
atanov, andyj, а может проще почитать документацию по технологии? Ну, чтобы не фантазировать
Вот это
Цитата Сообщение от andyj Посмотреть сообщение
это ускорит отрисовку (режим "переключения" ДОМов между отлаживаемым и реальным)
чушь.

Цитата Сообщение от andyj Посмотреть сообщение
это позволит "упаковать" компонент в "тень" + защитит их от наглого вмешивания парсерами.
да, одна из возможностей предоставляемых этим апи.


Цитата Сообщение от atanov Посмотреть сообщение
andyj, оба пункта не правда. Отрисовка будет медленнее, пусть немного. Парсер парсит результат - т.е. готовый DOM. Попрятать компонент - для пользователя сойдёти невидимым, а если из потока удалить, можно кучу проблем горести.
прям вся фраза чушь, без обид.
Отрисовка не станет медленнее, даже не используя это апи, убрать рендер в нирвану не составит труда - дерево over100500 элементов и дело в шляпе. То есть тупо куча текста. Именно этот критерий важен.
Парсер парсит документ - изучите как работают протоколы подключения.
Удалить из потока, проблемы - ЧТО?? Вы создаете класс компонента, создаете экземпляр, его рендерит клиент - Вы удаляете экземпляр, его не рендерит клиент. Вот если руки достались от представителей Brachyura - тогда да, возможны проблемы

Цитата Сообщение от andyj Посмотреть сообщение
Мне ее знакомый посоветовал который фронтом на фреймворках работает (Vui, Angular) - сказал что там все на этом построено в новых версиях и за счет этого дикий прирост скорости по сравнению с прошлыми версиями и разработка упрощается
да, именно Custom Elements и Shadow DOM используются сегодня во всех современных фреймворках.
Развивается сама технология и естественно и они.

Цитата Сообщение от andyj Посмотреть сообщение
Застрял на изучении https://learn.javascript.ru/shadow-dom
и не мудрено. У фантазера большие проблемы с чтением англ. техлиты.

Цитата Сообщение от andyj Посмотреть сообщение
но не понятно зачем
Читайте документацию, маленький спойлер - основные возможности этих апи - ИНКАПСУЛЯЦИЯ дерева и создание собственных элементов, чей интерфейс будет отличен от пустого HTMLUnknownElement
https://www.w3.org/TR/shadow-dom/
https://w3c.github.io/webcomponents/spec/shadow/
https://github.com/w3c/webcomponents/
https://developer.mozilla.org/... shadow_DOM
https://developer.mozilla.org/... Components
er.mozilla.org/en-US/docs/Web/Web_Components[/url]
2
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
31.07.2019, 23:48  [ТС]

Не по теме:

Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
и не мудрено. У фантазера большие проблемы с чтением англ. техлиты.
Полегче с обвинениями! Это я (автор) пытался, прежде чем вчитываться в англоязычную терминологию, понять, нужно ли оно мне... (чтиво было не убедительным)

Я НЕ "фронтэндер"(и не особо планирую) - просто для текущего проекта вынужден кроме бэка(нода) еще и фронт часть писать из сложных компонент... написал свой фреймворк "под проект"(всего 8Kb в .min.js), и почти считал его достаточным, а тут меня остудили что "все фреймворки сейчас на ШадоуДоме работают".




Спасибо за ссылки... почитаю...
Последний вопрос - насколько эта технология поддерживается современными браузерами? (про IE и MiniOpera молчу - похоже там почти все через ж...)
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
01.08.2019, 00:25

Не по теме:

andyj,

Цитата Сообщение от andyj Посмотреть сообщение
Полегче с обвинениями! Это я (автор) пытался
А причем здесь Вы? Я про Кантора. У него и правда слишком вольный перевод, что часто вводит в заблуждение. Именно благодаря ему появилась целая армия верующих в null == object. Или недавний пример - Document Object Model.
И в тупик Вы зашли благодаря лаже, что Вы прочитали у него.
И таких примеров куча. В общем Вы приняли на свой счет то, что Вам не предназначалось. Построили проекцию?



Цитата Сообщение от andyj Посмотреть сообщение
насколько эта технология поддерживается современными браузерами?
https://caniuse.com - используйте ресурс
Ознакомьтесь - https://caniuse.com/#search=Shadow%20DOM, https://caniuse.com/#search=web%20component
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.08.2019, 00:25
Помогаю со студенческими работами здесь

Маленькая скорость интернета [DOM.RU]
Здравствуйте, я понимаю что с этим вопросом в тех.поддержку Dom.ru но я хочу спросить у вас, здесь. У меня интернет DOM.RU 5 мбит\с ...

Использование DOM-функций
Пытаюсь выполнить следующий код: include ('db_connekt.php'); $sql=mysql_query("SELECT * FROM hotel "); header("Content-type:...

Приватность массива
Возник вопрос, есть вот такая структура namespace ConsoleApp36 { public struct Trains { public int Noumber {...

Зачем мне приватность?
Здравствуйте. Я в который раз задаю себе (а заодно и гуглу) вопрос - зачем мне приватность? После заявлений Сноудена, Асанджа и проч. по...

HTML DOM как с использованием Javascript создать узлы DOM
Доброго времени суток. хочу через Javascript по событию onclick добавить в html документ что то вроде: <div>hello world</div>...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru