Хук IIFE (самозвонящий) функции JavaScript

Я хочу подключить функции IIFE:

(function(p) {
// stuff
})();

Я спрашиваю об этом в общем смысле, хотя конкретная причина в том, что плагины WordPress часто вставляют встроенные скрипты прямо в вывод тела. Если вы хотите отложить (асинхронные) зависимости загрузки по причинам SEO, это, естественно, завершится неудачей.

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

Я пытаюсь избежать:

  1. Изменение кода поставщика напрямую.
  2. Разбор необработанного контента с использованием PHP.
  3. Блокировка существующих серверных систем загрузки ресурсов JavaScript, чтобы соответствующим образом загрузить их позже.

Мне интересно, есть ли в браузере dom какой-то чрезвычайно низкоуровневый прототип, который можно использовать для перехвата функций такого рода?

0

Решение

В итоге я сделал то, что хотел избежать. Это немного грязно, но работает очень хорошо. Я бы поделился, но нда. Если возможно, я попытаюсь отправить его в виде запроса на получение одного из более крупных плагинов SEO / кеширования (вероятно, лучше минимизировать WordPress).

Он сканирует выходной буфер на наличие проблемных сценариев и стилей и настраивает их так, чтобы они соответствовали требованиям Google SEO (не блокируя). Я полагаю, что это никогда не сработает для gen-pop, поскольку количество плохого кодирования в этом мире бесконечно, и я думаю, что к тому времени, когда будут обработаны все сценарии использования, регулярное выражение будет мучительно раздутым.

Он опирается на loadCSS и некоторую форму встроенного DocumentContentLoaded, которая должна быть определена в заголовке inline, начинается с принудительной отсрочки всех исходных сценариев, очищает javascript, предназначенный для выполнения в его собственном теге script, и перемещает сценарии тела в одну функцию это можно назвать, когда настало время.
Все с регулярным выражением.

Вот несколько советов для тех, кто заинтересован в том, чтобы делать подобное:

Привет всем комментариям и помощи, оказанным здесь, я бы даже не попытался, не поговорив сначала с вами, ребята. Ценю указатели и советы, увидимся в следующий раз!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]