2014-01-09 5 views
3

у меня есть два .js файлы, и они будут добавлены в головной метке в следующем порядке:Загрузка порядок JS файлов

<script type="text/javascript" src="script_nr_1.js"></script> 
<script type="text/javascript" src="script_nr_2.js"></script> 

script_nr_2.js имеет переменный, которая использует объект script_nr_1.js, но при загрузке страницы, что первым инициализировать script_nr_2.js 's vars. Таким образом, это вызывает ошибку в script_nr_2.js, поскольку она пытается инициализировать var с несуществующим объектом.

Как предотвратить это и привести их в порядок?

+0

объединить оба файла .js в один в правильном порядке. –

+0

первый js-файл - это некоторая библиотека, и оба файла довольно длинны, я не хочу этого делать, пока не найду хорошее решение. – Sarge

+0

* «script_nr_2.js имеет переменную, которая использует объект script_nr_1.js, но когда загружается страница, она сначала инициализирует vars_ скрипта_nr_2.js.» * Это не имеет никакого смысла. 'script_nr_1.js' будет запущен до запуска' script_nr_2.js'. –

ответ

5

С этой разметкой script_nr_1.js будет всегда будет выполняться до script_nr_2.js (при условии, конечно, первый файл сценарий на самом деле доступен). Если вы видите что-то из первого скрипта, который еще не готов, когда выполняется второй скрипт, это означает, что первый скрипт настраивает какую-то задержанную инициализацию, возможно, ждет «готовности DOM» или загрузки страницы.

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

+0

Задержка кода - хороший момент для начала ... У меня такая же проблема на самом деле. – Adelin

Смежные вопросы