Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Уникальная игра, в которой гармонично сочетаются знакомая механика «три в ряд» и тактические пошаговые сражения!

Магический мир

Мидкорные, Ролевые, Три в ряд

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
9
Lineage2JS
Lineage2JS
ИТ-проекты пикабушников

Видите разницу? А она есть!⁠⁠

4 месяца назад

Привет. Я продолжаю разрабатывать сервер для Lineage 2 C1 на JavaScript Проект

Видите разницу? А она есть!

В первом же квесте Fighter's Tutorial (даёт SP и карту мира) столкнулся с любопытным моментом. Охота на внешне одинаковых NPC, но на деле разных!

Речь пойдет только о квесте для людей на острове Talking Island Village.

В чём подвох?

В мире Lineage есть два NPC с одинаковым именем - Bearded Keltir.
Внутри сервера это разные NPC: ID 12082(tuto_keltir) и ID 481(keltir).
По квесту Fighter's Tutorial надо добыть Keltir Fang.

Убивайте Bearded Keltir, пока не получите Keltir Fang x4.

Как различать Bearded Keltir?

У этих NPC есть несколько зон spawn'a. Некоторые зоны пересекаются и в одной зоне могут находиться разные Bearded Keltir.
Так например если вы решите проходить квест возле Talking Island Village то вот на что надо обратить внимание:
* Keltir Fang падает с шансом в 100%. Если не упал, то вы убили не того NPC.
* С нужного Bearded Keltir не падает дроп. Дроп у ID 12082(tuto_keltir) отсутствует.

Вывод

Лучше всего проходить квест возле Cedric's Training Hall так как там одна из зон появления Bearded Keltir они же ID 12082(tuto_keltir).

Блог про разработку сервера для Lineage 2 в телеге https://t.me/lineage2js

Показать полностью
[моё] Разработка Программирование MMORPG Lineage 2 Javascript Nodejs Gamedev
15
tablepedia
Лига программистов
Серия Визуализация данных

Графики курсов криптовалют (2016-2025)⁠⁠

4 месяца назад

Уважаемые пикабушники!

Я создал микросайт с графиками курсов криптовалют (там только минимальные и максимальные значения за календарный год).

Показываю ПОШАГОВОЕ использование:

1. Зайти на https://tablepedia.com/cryptocurrency2025/

Кстати, весь микросайт в архиве ZIP занимает 14 килобайт и его можно скачать по адресу: https://tablepedia.com/cryptocurrency2025.zip

Если вы немного пролистнёте сайт вниз, вы увидите таблицу, а пониже неё - графики курсов биткоина (BTC) и эфириума (ETH):

Рис. 1. Графики курсов BTC и ETH (2016-2025).

Рис. 1. Графики курсов BTC и ETH (2016-2025).

2. Вы можете изменить года, вот один из результатов:

Рис. 2. Графики курсов криптовалют с изменёнными годами.

Рис. 2. Графики курсов криптовалют с изменёнными годами.

3. В нижней части сайта вы видите графики лайткоина (LTC) и монеро (XMR):

Рис. 3. Графики LTC и XMR.

Рис. 3. Графики LTC и XMR.

Думаю, очевидно, что можно менять не только года, но и криптовалюты, которые показаны на графике.

Если интересно, можете посмотреть этот сайт на GitHub: https://github.com/yaroslav1982/tablepedia-microsite-cryptocurrency2025

Предлагаю посмотреть в моей подборке постов визуализацию данных о населении стран мира, а также - курсов валют и металлов: Визуализация данных

Если есть вопросы, напишите их, пожалуйста, в комментариях.

Показать полностью 3
[моё] Сайт IT Программист Javascript Svg Визуализация Визуализация данных Github Криптовалюта Валюта Биткоины Эфириум Лайткоин График Капитализм Спекуляция Zip файл Население Freeware Инструкция Длиннопост
1
9
hypo69
hypo69
Лига программистов
Серия Шпаргалки

Shadow DOM - DOM внутри DOM⁠⁠

4 месяца назад

Дисклеймер. На пикабу до сих пор не завезли редактор кода, поэтому картинки. Кому на нравятся картинки - при желании может почитать статью на GitHub


DOM — это программный интерфейс (API) для кода страницы, который представляет страницу как древовидную структуру объектов.

Каждый HTML-элемент (например, <p>, <div>, <img>), каждый атрибут и каждый фрагмент текста является отдельным «узлом» (node) в этом дереве. С JavaScript, мы можем обращаться к этим узлам, чтобы динамически изменять страницу: менять текст, добавлять стили, создавать новые элементы или удалять существующие. По сути, DOM — это «живая» модель документа, с которой взаимодействует код.

Но у этой открытости есть и обратная сторона. Когда мы создаем сложный, многократно используемый компонент (например, кастомный видеоплеер или виджет календаря), его внутренняя структура и стили становятся уязвимыми. Стили CSS с основной страницы могут случайно «протечь» внутрь компонента и сломать его внешний вид. Аналогично, JavaScript-код страницы может непреднамеренно изменить внутренние элементы компонента, нарушив его логику.

Для решения этой проблемы и существует Shadow DOM (теневой DOM).

По своей сути, Shadow DOM — это «DOM внутри DOM». Это скрытое дерево элементов, которое прикрепляется к обычному элементу на странице (называемому «хостом»), но при этом оно изолировано от основного DOM. Оно позволяет разработчику создать герметичную границу вокруг внутренней структуры компонента, защищая его от внешнего мира.

Теневой DOM позволяет прикреплять скрытые DOM-деревья к элементам в обычном DOM-дереве. Это теневое дерево начинается с теневого корня (shadow root), под который можно прикреплять любые элементы так же, как и в обычном DOM.

<!--noindex--><a href="https://pikabu.ru/story/shadow_dom__dom_vnutri_dom_12992706?u=https%3A%2F%2Fdeveloper.mozilla.org%2F&t=https%3A%2F%2Fdeveloper.mozilla.org%2F&h=3062ebc7e7f23f2aa9035f25e9a79085eb696c7e" title="https://developer.mozilla.org/" target="_blank" rel="nofollow noopener">https://developer.mozilla.org/</a><!--/noindex-->

https://developer.mozilla.org/

Существует несколько терминов, связанных с теневым DOM, которые следует знать:

  • Теневой хост (Shadow host): Обычный узел DOM, к которому прикреплен теневой DOM.

  • Теневое дерево (Shadow tree): DOM-дерево внутри теневого DOM.

  • Теневая граница (Shadow boundary): Место, где заканчивается теневой DOM и начинается обычный DOM.

  • Теневой корень (Shadow root): Корневой узел теневого дерева.

Вы можете воздействовать на узлы в теневом DOM точно так же, как и на обычные узлы. Разница в том, что никакой код внутри теневого DOM не может повлиять на что-либо за его пределами, что обеспечивает надёжную инкапсуляцию.

До того, как теневой DOM стал доступен веб-разработчикам, браузеры уже использовали его для инкапсуляции внутренней структуры стандартных элементов. Например, элемент <video> с элементами управления. Всё, что вы видите в DOM, — это тег <video>, но он содержит ряд кнопок и других элементов управления внутри своего теневого DOM.

Создание теневого DOM

Создавать теневой DOM можно двумя способами: императивно с помощью JavaScript или декларативно прямо в HTML.

Императивно с помощью JavaScript

Этот способ отлично подходит для приложений, рендерящихся на стороне клиента. Мы выбираем элемент-хост и вызываем на нём метод attachShadow().

Результат на странице будет выглядеть так:

Я нахожусь в теневом DOM Я не в теневом DOM

Декларативно с помощью HTML

Для приложений, где важен рендеринг на стороне сервера, можно определить теневой DOM декларативно, используя элемент <template> с атрибутом shadowrootmode.

Когда браузер обработает этот код, он автоматически создаст теневой корень для <div> и поместит в него содержимое тега <template>. Сам тег <template> при этом исчезнет из основного DOM-дерева.

Инкапсуляция: защита от JavaScript и CSS

Главное преимущество Shadow DOM — это изоляция. Давайте посмотрим, как она работает.

Инкапсуляция от JavaScript

Добавим кнопку, которая будет пытаться изменить все элементы <span> на странице.

При нажатии на кнопку текст изменится только у <span>, который находится в основном документе. Элемент внутри теневого DOM останется нетронутым, потому что document.querySelectorAll() не может "заглянуть" за теневую границу.

Доступ к теневому DOM: свойство shadowRoot и работа с вложенностью

Когда мы вызываем host.attachShadow({ mode: "open" }), мы создаём теневой DOM в "открытом" режиме. Это означает, что мы можем получить доступ к его содержимому извне через свойство host.shadowRoot.

Если же указать mode: "closed", свойство host.shadowRoot вернёт null, и доступ к теневому дереву извне будет закрыт. Это не строгий механизм безопасности, а скорее соглашение для разработчиков о том, что внутренности компонента трогать не следует.

Работа с вложенными теневыми деревьями

В сложных компонентных архитектурах один пользовательский элемент может содержать внутри себя другие пользовательские элементы, каждый из которых имеет свой собственный Shadow DOM. Чтобы добраться до элемента в глубоко вложенном теневом дереве, придётся последовательно "проходить" через каждый shadowRoot.

Представим себе такую структуру:

  • Компонент <nmbrs-form> (основная форма).

  • Внутри него находится <div>, а в нём — компонент <nmbrs-button> (кастомная кнопка).

  • Внутри <nmbrs-button> находится настоящая HTML-кнопка <button>.

Чтобы получить доступ к этой кнопке из глобального контекста, путь будет выглядеть так:

SВ виде одной цепочки вызовов это выглядит так:

Такая длинная цепочка наглядно демонстрирует мощь инкапсуляции: чтобы добраться до внутренних деталей, нужно явно пройти через каждую "границу". Это делает код более предсказуемым и защищает компоненты от случайных изменений.

Инкапсуляция от CSS

Стили, определённые на основной странице, не влияют на элементы внутри теневого DOM.

Элемент <span> внутри теневого дерева не получит эти стили. Это решает огромную проблему случайных пересечений и конфликтов CSS.

Применение стилей внутри теневого DOM

Стили, определённые внутри теневого дерева, в свою очередь, не влияют на основную страницу. Есть два основных способа их добавления.

1. Конструируемые таблицы стилей (Constructable Stylesheets)

Этот метод позволяет создавать объект CSSStyleSheet в JavaScript и применять его к одному или нескольким теневым деревьям. Это эффективно, если у вас есть общие стили для множества компонентов.

2. Добавление элемента <style>

Простой и декларативный способ — поместить тег <style> прямо внутрь теневого дерева (часто внутри <template>).

Теневой DOM и пользовательские элементы: идеальное сочетание

Вся мощь теневого DOM раскрывается при создании пользовательских элементов (Custom Elements). Без инкапсуляции они были бы невероятно хрупкими.

Пользовательский элемент — это класс, наследующий HTMLElement. Как правило, сам элемент выступает в роли теневого хоста, а вся его внутренняя структура создаётся внутри теневого дерева.

Вот пример простого компонента <filled-circle>:

Теперь мы можем использовать его в HTML как обычный тег, не беспокоясь о его внутреннем устройстве:

Каждый из этих компонентов будет полностью инкапсулирован и защищён от влияния внешней страницы.

Полезно? Подпишись.
Удачи 🚀

Показать полностью 13
[моё] Гайд Программирование IT Frontend Javascript HTML Веб-разработка Длиннопост Dom
1
4
tablepedia
ИТ-проекты пикабушников
Серия Визуализация данных

Графики курсов валют (1999-2025)⁠⁠

4 месяца назад

Уважаемые пикабушники!

Я создал микросайт с графиками курсов валют.

Показываю ПОШАГОВОЕ использование:

1. Зайти на https://tablepedia.com/change2025/

Кстати, весь микросайт в архиве ZIP занимает 14 килобайт и его можно скачать по адресу: https://tablepedia.com/change2025.zip

Если вы немного пролистнёте сайт вниз, вы увидите таблицу, а пониже неё - графики курсов евро и юаня (относительно доллара):

Рис. 1. Графики курсов евро и юаня (1999-2025).

Рис. 1. Графики курсов евро и юаня (1999-2025).

2. Вы можете изменить года, вот один из результатов:

Рис. 2. Графики курсов валют с изменёнными годами.

Рис. 2. Графики курсов валют с изменёнными годами.

3. В нижней части сайта вы видите графики индийской рупи и российского рубля:

Рис. 3. Графики индийской рупи и российского рубля.

Рис. 3. Графики индийской рупи и российского рубля.

Думаю, очевидно, что можно менять не только года, но и страны, которые показаны на графике.

Если интересно, можете посмотреть этот сайт на GitHub: https://github.com/yaroslav1982/tablepedia-microsite-change2025

Напоминаю, что ранее я опубликовал сайт с минимальными и максимальными значениями золота, серебра, платины и палладия:
https://pikabu.ru/story/prodolzhenie_posta_minimalnyie_i_maksimalnyie_stoimosti_zolota_serebra_platinyi_i_palladiya_za_kazhdyiy_god_19002025_12925966

Также я опубликовал графики населения 10 крупнейших стран мира:

https://pikabu.ru/story/naselenie_krupneyshikh_10_stran_mira_19802025_12948675

Если есть вопросы, напишите их, пожалуйста, в комментариях.

Показать полностью 3
[моё] Капитализм Золото Доллары Курс доллара Европа Юань Рупии Рубль Курс рубля Инфляция Китай Индия Бразилия Россия Валюта Население Сайт Javascript Svg Визуализация Длиннопост
1
3
romanzhivo

Как немножко хакнуть Мосрег⁠⁠

4 месяца назад

Всем привет!

При оформлении заявлений в детский сад на детей на uslugi.mosreg.ru столкнулся с тем, что если ранее было подано заявление и нужно какие-то данные в нём поправить, то выбрать год зачисления ребёнка в ДС можно только следующий. То есть, мы подали в 2024, а теперь можно выбрать только 2026 год, потому что текущий нельзя.

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

В видео подробнее, как обойти ограничение

P.S. На записи не видно контекстного меню в браузере, когда нажимаешь ПКМ, оно выглядит примерно так, нас интересует последний пункт "Просмотреть код":

Как немножко хакнуть Мосрег
Показать полностью 1
[моё] Госуслуги Детский сад Хакеры Лайфхак Программирование Frontend Javascript Пользователи Видео Видео ВК Дети
2
7
tablepedia
ИТ-проекты пикабушников
Серия Визуализация данных

Население крупнейших 10 стран мира (1980-2025)⁠⁠

4 месяца назад

Уважаемые пикабушники!

Я создал микросайт с графиками населения 10 крупнейших стран мира.

Показываю ПОШАГОВОЕ использование:

1. Зайти на https://tablepedia.com/population2025

Кстати, весь микросайт в архиве ZIP занимает 14 килобайт и его можно скачать по адресу: https://tablepedia.com/population2025.zip

Если вы немного пролистнёте сайт вниз, вы увидите таблицу, а пониже неё - графики населения:

Рис. 1. Графики населения Китая, США, Индии и России (1980-2025).

Рис. 1. Графики населения Китая, США, Индии и России (1980-2025).

2. Вы можете изменить года, вот один из результатов:

Рис. 2. Графики населения с изменёнными годами.

Рис. 2. Графики населения с изменёнными годами.

3. В нижней части сайта вы видите графики Индонезии, Бразилии, Бангладеша и Пакистана:

Рис. 3. Графики населения Индонезии, Бразилии, Бангладеша и Пакистана.

Рис. 3. Графики населения Индонезии, Бразилии, Бангладеша и Пакистана.

Думаю, очевидно, что можно менять не только года, но и страны, которые показаны на графике.

Если интересно, можете посмотреть этот сайт на GitHub: https://github.com/yaroslav1982/tablepedia-site-population2025

Напоминаю, что 5 дней назад я опубликовал сайт с минимальными и максимальными значениями золота, серебра, платины и палладия:
https://pikabu.ru/story/prodolzhenie_posta_minimalnyie_i_maksimalnyie_stoimosti_zolota_serebra_platinyi_i_palladiya_za_kazhdyiy_god_19002025_12925966

Если есть вопросы, напишите их, пожалуйста, в комментариях.

Показать полностью 3
[моё] Капитализм Социализм Сайт IT Javascript Svg HTML Население Демография Китай Индия США Россия Статистика Индонезия Бразилия Бангладеш Пакистан Нигерия Мексика Длиннопост
0
tablepedia
ИТ-проекты пикабушников
Серия Визуализация данных

Продолжение поста «Минимальные и максимальные стоимости золота, серебра, платины и палладия за каждый год (1900-2025)»⁠⁠1

5 месяцев назад

Уважаемые пикабушники!

Вчера я показал скриншот с графиками минимальных и максимальных значений золота, серебра, платины и палладия.

Предполагал, что кто-нибудь напишет, что на другом сайте видел похожие графики. Прошли почти сутки - ни одного комментария.

Значит, показываю ПОШАГОВОЕ использование моего микросайта.

1. Зайти на https://tablepedia.com/gold2025/

Кстати, весь микросайт в архиве ZIP занимает 15 килобайт и его можно скачать по адресу: https://tablepedia.com/gold2025.zip

Если вы немного пролистнёте сайт вниз, вы увидете таблицу, а пониже неё - графики золота и серебра:

Рис. 1. Графики золота и серебра (1960-2025).

Рис. 1. Графики золота и серебра (1960-2025).

2. Вы можете изменить года, вот один из результатов:

Рис. 2. Графики золота и серебра с изменёнными годами.

Рис. 2. Графики золота и серебра с изменёнными годами.

3. Ниже золота и серебра вы видете графики платины и палладия:

Рис. 3. Графики платины и палладия.

Рис. 3. Графики платины и палладия.

Думаю, очевидно, что можно менять не только года, но и металлы, которые показаны на графике.

Если есть вопросы, напишите их, пожалуйста, в комментариях.

Показать полностью 3
[моё] Сайт Javascript Svg HTML Золото Серебро Платина Палладий Капитализм Консультация Доллары Курс доллара Биржа Торговля Рыночная экономика Программирование Программа Программист IT Ответ на пост Длиннопост
5
tablepedia
Серия Визуализация данных

Минимальные и максимальные стоимости золота, серебра, платины и палладия за каждый год (1900-2025)⁠⁠1

5 месяцев назад

Уважаемые пикабушники!

Я создал микросайт, на котором ОДНОВРЕМНЕННО показываются минимальные и максимальные стоимости золота, серебра, платины и палладия (в долларах за унцию) в диапазоне от 1900 до 2025 года (по состоянию на 05.07.2025), что вы видите на рисунке ниже.

Точнее говоря, на каждом из четырёх рисунков пользователь вручную может настроить диапазон (например, 1960-2025).

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

Также мне хотелось бы, чтобы в ближайшие сутки было поменьше комментариев о дизайне микросайта, а побольше мнений о наличии или отсутствии аналогов нижеприведённых диаграмм.

Минимальные и максимальные стоимости золота, серебра, платины и палладия за каждый год (1960-2025)

Минимальные и максимальные стоимости золота, серебра, платины и палладия за каждый год (1960-2025)

Показать полностью 1
[моё] Сайт Javascript Svg HTML Золото Серебро Платина Палладий Капитализм Консультация Доллары Курс доллара Биржа Торговля Рыночная экономика Программирование Программа Программист
3
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии