All streams
Search
Write a publication
Pull to refresh
82
0

Программист-фрилансер

Send message

Один classList на каждый элемент. И он уже есть даже если вы им не пользуетесь.

Например на cтранице у меня сейчас отображается только часть комментариев.


Имеем 40КБ текста и 200КБ тегов и атрибутов просто как текст. Элементов 762 и атрибутов 5197. Как то многовато для 19 комментариев отображаемых на странице.

Каждый атрибут это тоже node() который имеет свои параметры и занимает оперативку.


1: mol_html_view_text=""
baseURI: "https://nin-jin.github.io/habrcomment/#article=423889"
childNodes: NodeList []
firstChild: null
isConnected: false
lastChild: null
localName: "mol_html_view_text"
name: "mol_html_view_text"
namespaceURI: null
nextSibling: null
nodeName: "mol_html_view_text"
nodeType: 2
nodeValue: ""

А класс это уже просто значение атрибута class.

Вот что я вижу здесь в инспекторе:


<mol_dimmer id="$my_habrcomment.Root(0).Article().Text([object Text])" mol_html_view_text="" my_habrcomment_article_text="" mol_dimmer="" mol_paragraph="" mol_view="" style="min-height: 72px;">

Как это могло бы выглядеть.


<mol_dimmer id="$my_habrcomment.Root(0).Article().Text([object Text])" class="mol_html_view_text my_habrcomment_article_text mol_dimmer mol_paragraph mol_view" style="min-height: 72px;">

Может даже класс "mol_dimmer" лишний так как элемент и так называется "mol_dimmer".

Я не призываю использовать классы там где нужно использовать атрибуты.


Автор же использует атрибуты в роли классов. То есть у элементов куча атрибутов с пустыми значениями. И по именам этих атрибутов элементам задаются CSS стили.

Вы хотели сказать скачать дамп Википедии? Так то дампы регулярно делаются.

Ну если очень нужно отслеживать добавление и удаление элементу класса то можно отслеживать атрибут class. Он будет меняться при добавлении и удалении класса.


Разбиваем по пробелам oldValue и newValue. Чего нет из oldValue в newValue удалено. Чего нет из newValue в oldValue добавлено.

Мне говорили что вообще интернета сегодня в Беларуси не будет. А оказывается его только частично заблокировали.

Так какие возможности дают атрибуты по сравнению с классами?


el.hasAttribute (name) > el.classList.contains (name)
el.removeAttribute (name) > el.classList.remove(name)
el.getAttribute (name) > el.classList.contains(name)
el.setAttribute (name, str) > el.classList.add(name)


А есть ещё:
el.classList.toggle(name) — добавить или убрать класс в зависимости нет его или есть в списке соответственно.


el.classList.replace(old_name, new_name) — заменить один класс другим.


Я не говорю что нужно использовать классы вместо атрибутов. Просто не надо использовать атрибуты вместо классов.

Что такое селекторы атрибутов я знаю. У вас в HTML коде куча атрибутов без значения которые используются явно вместо классов. Разве они не раздувают DOM и HTML?


Есть ли смысл использовать атрибуты вместо классов?


Если что у классов есть удобное браузерное API которое позволяет легко их добавлять и удалять.

Подскажите зачем используются атрибуты вместо классов? Что это даёт?

Открываю ваш вариант


  1. На вкладке сеть я вижу что текст статьи уже загрузился но мне его не показывают.
  2. Запрос комментариев на моём дачном глючном интернете показал фигу через несколько минут.

В результате вместо статьи без комментариев вижу фигу с ошибкой сети. К сожалению хабр не позволяет догрузить комментарии кусочками через Range или API(или я не знаю как).

Гугл показал некоторые тестовые страницы в поиске. Теперь можно посмотреть результаты. Тестовые ссылки в конце статьи.

Только сегодня шупал тестовую инстацию с их сайта. На простой запрос "test" пустой ответ.

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

Всех то он не сможет будить. Там надо знать ID каждого.

В случае p2p да, нужно постоянно выходить на связь, иначе если отправитель за этот час уйдет в оффлайн — сообщений от него не получить.

При e2e шифровании можно доверить доставку "ближайшим" узлам собеседника. И как только он появится в сети он сможет получить сообщения от них.

А если пуш будет использоваться не для непосредственной передачи сообщений а только с целью разбудить клиент чтобы он принял их стандартным способом?

В принципе цик может выложить на одной странице хеши файлов с базой а базу потом может раздавать кто угодно. Хоть торрентами. И её можно будет проверить по хешам.

Information

Rating
Does not participate
Registered
Activity