Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   вопрос по инклудам (https://javascript.ru/forum/misc/12709-vopros-po-inkludam.html)

igrok 29.10.2010 20:05

вопрос по инклудам
 
Подскажите пожалуйста как правильно можно инклудить js файлы, я нашел вот эту функцию http://javascript.ru/php/include, но получается что если я к примеру в подключаемом файле создам функцию то вызвать её прямо после инклуда нельзя, разве что вызывать её в callback, но это не удобно, особенно если инклудить несколько файлов.

Спасибо

igrok 29.10.2010 20:31

вопрос снят, извините за "лишнюю тему" :(

vladlen 30.10.2010 13:48

В любом случае неплохо тема раскрыта тут

igrok 30.10.2010 15:43

она там неплохо раскрыта, но не все аспекты, а только лишь один
очень помогла вот эта ветка http://javascript.ru/forum/dom-window/1184-include.html и конкретно ответ "Kolyaj", за что ему спасибо :)

vladlen 30.10.2010 16:14

Цитата:

Сообщение от igrok (Сообщение 76636)
она там неплохо раскрыта, но не все аспекты, а только лишь один

Там раскрыта идеология его создания, какие еще аспекты нужны?

Kolyaj 01.11.2010 09:11

Цитата:

Сообщение от vladlen
В любом случае неплохо тема раскрыта тут

Очень очень очень негодная статья. Сжечь и забыть.

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

Во-вторых, там предлагается использовать синхронный запрос на сервер, за это вообще надо отнимать клавиатуру и допускать к IDE только в режиме read-only. Т.к. всё время, пока будут подгружаться ваши скрипты, браузер будет висеть, т.е. вообще никак не реагировать на действия пользователя. А теперь перемножьте количество скриптов и качество инет-соединения.

Я это всё не с потолка говорю, я самолично пытался использовать все возможные "инклюды". И синхронный XHR тоже. На одной страничке у меня подключался таким способом десяток скриптов, в результате браузер зависал секунд на 5-10.

Вердикт: только сборка скриптов на сервере.

monolithed 01.11.2010 09:30

Kolyaj Как по вашему можно ли это считать инклудом и вообще свое мнение?

<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8">
        google.load("jquery", "1.4.3");
</script>

Kolyaj 01.11.2010 09:35

Да, можно. Но тут решаются другие задачи. В любом случае будет запрос на сервер гугла за файлом. Тут не стоит задача минификации количества запросов, тут стоит задача облегчить жизнь простому программисту, для чего жертвуют ровно одним http-запросом. Хотя лично я смысла в этой конструкции не вижу.

Вобщем нельзя сравнивать инклюд кучи своих файлов и инклюд фреймворка с гугловского сервера.

eai 01.11.2010 20:48

Независимо от реализации статья хорошая.
>>Большое число скриптов труднее структурировать
Посему инструментарий для подгрузки кода по требованию, важен и нужен. Конечно в асинхронном режиме с событием "Готов" и возможностью потом delete сего кода, это идеальный вариант.

eai 01.11.2010 20:50

Цитата:

Сообщение от monolithed (Сообщение 76802)
Kolyaj Как по вашему можно ли это считать инклудом и вообще свое мнение?

<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8">
        google.load("jquery", "1.4.3");
</script>

Думаю что можно (google.load("jquery", "1.4.3"); можно вызывать в разным местах кода), но привязываться к стороннему серверу за такой малостью я бы не стал ;-)


Часовой пояс GMT +3, время: 22:30.