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

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

24.07.2019, 07:35. Показов 2570. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru