Как предотвратить повторное выполнение внешнего JavaScript?

Привет всем! У меня возникла проблема с файлом скрипт.js. Он подключен на главной странице, но иногда его снова подключают на других страницах. Из-за этого он выполняется дважды. Вот как выглядит мой скрипт:

(function() {
  console.log('Скрипт запущен');
  // Тут основной код
  // ...
})();

Как можно сделать так, чтобы скрипт выполнялся только один раз, даже если его подключить несколько раз? Буду благодарен за любые идеи!

Можно использовать localStorage для отслеживания выполнения скрипта. Например:

if (!localStorage.getItem('scriptExecuted')) {
  localStorage.setItem('scriptExecuted', 'true');
  (function() {
    console.log('Скрипт запущен');
    // Основной код
  })();
}

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

А почему бы не использовать модули ES6? Можно экспортировать функцию из скрипта и импортировать ее где нужно. Так код выполнится только при первом импорте. Типа:

export function init() {
console.log(‘Скрипт запущен’);
// код
}

А потом просто import { init } from ‘./script.js’ и вызывать init(). Просто и надежно, имхо.

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

if (typeof window.scriptExecuted === 'undefined') {
  window.scriptExecuted = true;
  (function() {
    console.log('Скрипт запущен');
    // основной код
  })();
}

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