Доступ к глобальным переменным с помощью скриптов, встроенных в загрузчик скриптов - PullRequest
2 голосов
/ 31 января 2012

Я пытаюсь обдумать некоторые тонкости использования асинхронных загрузчиков скриптов (head.js, yepnope и т. Д.).У меня есть настройки страницы примерно так:

<body>
    <script type="text/javascript" scr="yepnope.js"></script>
    <script type="text/javascript">
        var important_stuff = { "key" : "value", "another key" : "value"};
        yepnope([
            { load: "some/script.js" },
            { load: "another/script.js" }
        ]);
    </script>
</body>

Когда я проверяю полученный HTML-код этой страницы в Firebug, я замечаю, что yepnope вставил теги <script> для моих двух сценариев выше своего собственного тега.У меня вопрос: будут ли 2 скрипта, загруженные с yepnope, иметь доступ к глобальной переменной important_stuff, даже если они вставлены выше, где она определена?Спасибо.

1 Ответ

2 голосов
/ 31 января 2012

Все глобальные переменные являются глобальными. Как только он загружен и определен, он доступен всему, что существует в то время, или всем вещам, которые загружаются позже. Таким образом, имеет значение только порядок загрузки, а не место вставки тегов сценария.

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

...