Каждый раз выполняется .Зависит от файла, это может быть нежелательно.Например, если файл содержит alert("hello")
, он будет отображать окно предупреждения при каждой ссылке на файл, и вы, возможно, хотели, чтобы он отображался только один раз.
Запись безопасных библиотек:
Вот как вы можете обойти это, если хотите только одноразовое исполнение.Допустим, вы пишете библиотеку foobar.js
, которая экспортирует один глобальный объект, foobar
:
function foobar() {
// ...
}
. Вы можете убедиться, что любые повторные выполнения файла станут бездействующими, используя такой код:
window.foobar = window.foobar || function foobar() {
// ...
};
Использование небезопасных библиотек:
Если вы не можете изменить исходный код библиотеки, и вы определили, что это небезопасно, вот один из способов обойти это, чтобы загрузитьбиблиотека только один раз.Создайте глобальный объект и используйте его каждый раз, чтобы проверить, загружен ли уже скрипт.Вам придется установить глобальное значение на себя.
<script>(function() {
if (! window.foobar) {
var script = document.createElement('script');
script.async = true; // remove this if you don't want the script to be async
script.src = 'foobar.js';
document.getElementsByTagName('head')[0].appendChild(script);
window.foobar = true;
}
}();</script>