Проблема в том что генерируется примерно по 45 элементов DOM структуры на каждый блок кнопок, что дает лишние 1350 элементов на 30 записей при проверке через PageSpeed Insights, Lighthouse и GTMetrix. Нашел временное решение: подгружаю файл share.js через 15 секунд после загрузки страницы, что позволяет отложить прорисовку кнопок и решает проблему с DOM структурой в сервисах. Но 15 секунд… это многовато.
В сервисе PLUSO нет проблем с DOM структурой. Они как-то по-хитрому подгружают файл вот так:
<script type="text/javascript">(function() {
if (window.pluso)if (typeof window.pluso.start == "function") return;
if (window.ifpluso==undefined) { window.ifpluso = 1;
var d = document, s = d.createElement('script'), g = 'getElementsByTagName';
s.type = 'text/javascript'; s.charset='UTF-8'; s.async = true;
s.src = ('https:' == window.location.protocol ? 'https' : 'http') + '://share.pluso.ru/pluso-like.js';
var h=d[g]('body')[0];
h.appendChild(s);
}})();</script>
Пытался переделать этот код чтобы Яндекс кнопки таким образом подгружать, чтобы их не видели вышеприведенные сервисы, но в JavaScript я не силен и у меня ничего не получилось. Возможно ли вообще вот таким способом подгружать JS файл Яндекс кнопок чтобы они не создавали лишние DOM элементы в PageSpeed Insights или же там все гораздо сложнее чем я думаю? Как этот код переделать чтобы загружать JS Яндекс кнопок таким образом? PLUSO использовать не очень хочу. «Мы не ищем легких путей» 🙃
LEOnidUKG
Ну яндекс ещё туда свою метрику вставляет. Как вариант это загрузка скрипта по действию пользователя, клик, скролл и т.д.
totamon
зачем вам в анонсах то эти кнопки? вы исследовали, они эффективны? или чисто для красоты чтоб было?)
Kaminskiy_Serg
На странице категории сайта есть много блоков Яндекс кнопок поделиться для каждой записи. Выглядит код примерно так:
Проблема в том что генерируется примерно по 45 элементов DOM структуры на каждый блок кнопок, что дает лишние 1350 элементов на 30 записей при проверке через PageSpeed Insights, Lighthouse и GTMetrix. Нашел временное решение: подгружаю файл share.js через 15 секунд после загрузки страницы, что позволяет отложить прорисовку кнопок и решает проблему с DOM структурой в сервисах. Но 15 секунд… это многовато.
В сервисе PLUSO нет проблем с DOM структурой. Они как-то по-хитрому подгружают файл вот так:
Пытался переделать этот код чтобы Яндекс кнопки таким образом подгружать, чтобы их не видели вышеприведенные сервисы, но в JavaScript я не силен и у меня ничего не получилось. Возможно ли вообще вот таким способом подгружать JS файл Яндекс кнопок чтобы они не создавали лишние DOM элементы в PageSpeed Insights или же там все гораздо сложнее чем я думаю? Как этот код переделать чтобы загружать JS Яндекс кнопок таким образом? PLUSO использовать не очень хочу. «Мы не ищем легких путей» 🙃
LEOnidUKG
totamon