Выполнение кода слишком медленно при использовании window.addEventListener ('load'.. - PullRequest
0 голосов
/ 12 февраля 2020

Итак, вот что я пытаюсь достичь:

1) Есть внешний файл JS, скажем: event.js 2) Этот файл определяет глобальную переменную, которая имеет некоторые функции, например: :

window.obj = {
  f1: function1() {},
  f2: function2() {},
  // ...
};

3) А затем есть некоторый код, который использует этот объект и вызывает его функции:

if(obj) {
  obj.f1(data);
}

Веб-сайт, о котором идет речь, всегда управлялся через Google Tag Manager, и так устанавливается следующее:

1) Тег сценария, включающий базовый файл JS, создается как tag_base. 2) Тег, который содержит код в # 3 выше, создается как tag_code. 3) Приоритет tag_base установлен как 7. 4) Приоритет tag_code установлен как 6.

А теперь вот проблема: если я использую код tag_code, как показано в # 3 выше, функция f1 срабатывает примерно через 8-10 секунд. Причина, конечно, в том, что это тяжелый веб-сайт со множеством старых сценариев, поэтому они могут каким-то образом вступить во владение, и этот код выполняется в самом конце. Я не знаю почему. Но именно поэтому я поставил приоритет этим двум высоким, но это, похоже, не работает. Во-вторых, если я обертываю код в jQuery $(document).ready(), я получаю ошибку, что obj не определен, возможно потому, что внешний JS все еще не загружен.

Есть ли способ выйти из этого? В более общем смысле, как сценарии, собирающие данные (например, пиксель Facebook и т. Д. c.), Работают и достигают этих результатов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...