Привет всем! У меня возникла проблема с файлом скрипт.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 в глобальной области видимости. удачи с решением!