Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подключение скриптов из внешнего файла (https://javascript.ru/forum/misc/9617-podklyuchenie-skriptov-iz-vneshnego-fajjla.html)

feelman 27.05.2010 21:27

Подключение скриптов из внешнего файла
 
Заранее прошу прощения за ламерский вопрос..

Подскажите пожалуйста, как мне грамотно вывести в отдельный файл несколько разных скриптов и подключить их в нужном месте?

Вот конкретная ситуация: 2-а скрипта статистических счетчиков, и скрипт почтовой рассылки.
Не пойму, мне для того чтобы подключить все эти скрипты, каждый в своем месте, при помощи
<script src="/js/script1.js"></script> нужно сделать три отдельных file.js, каждый для своего скрипта чтоли?

Подскажите, очень надо! Заранее спасибо!

Sweet 27.05.2010 21:52

http://javascript.ru/tutorial/foundation/start

Gvozd 27.05.2010 21:52

ЩИТО?

feelman 27.05.2010 22:36

Цитата:

Сообщение от Sweet (Сообщение 56751)

Да, я естественно уже читал данный материал...у меня абсолютно нет опыта по работе с java, поэтому если вас не затруднит, можно подробнее?!?!

Вопрос:

У меня есть 3-и разных скрипта. Для того чтобы мне их подключить, мне нужно создать 3-и разных file.js (file.js1, file.js2, file.js3) и потом уже их подключать разными ссылками в документе, там где мне нужно?

Или же как то можно вызывать все 3-и скрипта из одного документа(file.js)
и как это делается тогда?

B~Vladi 27.05.2010 23:24

Тексты всех твоих файлов .js скинь в 1, другой и подключай его. Сложно было додуматься?

feelman 28.05.2010 04:06

Цитата:

Сообщение от B~Vladi (Сообщение 56761)
Тексты всех твоих файлов .js скинь в 1, другой и подключай его. Сложно было додуматься?

Да уж, видать не дождаться мне здесь вразумительного ответа на русском языке..:no: это называется - так увлеклись скриптами, что человеческий язык забыли..:)

"скинь в 1, другой и подключай его" - КАК это понимать?! :)

наводящий вопрос.. ок, все скрипты в одном файле .js

как вывести каждый отдельный скрипт в нужном месте в теле html документа?

рони 28.05.2010 06:05

если скрипты нужны в строго определённых местах тогда тебе нужны 3 файла с содержимым прежних скритов без тегов <script language="JavaScript" type="text/javascript"> </script>
а в то место где стоял скрипт просто добаляешь ссылку на источник скрипта
<script language="JavaScript" src="1.js" type="text/javascript"></script>
и так три раза
если неважно расположение скриптов а нужно их наличие то их ставять в раздел <head>
СЮДА!!!
</head>
или в низ страницы перед тегом </body> тогда содержимое всех трёх скриптов можно поместить один раз и один раз вывести способом указанным выше

e1f 28.05.2010 09:25

Цитата:

Сообщение от feelman (Сообщение 56782)
Да уж, видать не дождаться мне здесь вразумительного ответа на русском языке..:no: это называется - так увлеклись скриптами, что человеческий язык забыли..:)

"скинь в 1, другой и подключай его" - КАК это понимать?! :)

наводящий вопрос.. ок, все скрипты в одном файле .js

как вывести каждый отдельный скрипт в нужном месте в теле html документа?

Что, и Вас на гугле забанили?

feelman 28.05.2010 17:11

Цитата:

Сообщение от рони (Сообщение 56783)
если скрипты нужны в строго определённых местах тогда тебе нужны 3 файла с содержимым прежних скритов без тегов <script language="JavaScript" type="text/javascript"> </script>
а в то место где стоял скрипт просто добаляешь ссылку на источник скрипта
<script language="JavaScript" src="1.js" type="text/javascript"></script>
и так три раза
если неважно расположение скриптов а нужно их наличие то их ставять в раздел <head>
СЮДА!!!
</head>
или в низ страницы перед тегом </body> тогда содержимое всех трёх скриптов можно поместить один раз и один раз вывести способом указанным выше

Рони, спасибо огромное за вразумительный ответ!!! :thanks:

Тогда еще один глупый вопрос...(я не программист, и не собираюсь им быть.:) просто нужно быстро и качественно решить несколько задачек на веб-страничке)

Вопрос:

Если выносить каждый скрипт в одельный файл js, не повлияет ли это на скорость загрузки страницы, и все такое..? вообще, стоит ли это делать? профи так делают? :)

Заранее спасибо всем кто откликнится!

рони 28.05.2010 17:20

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

B~Vladi 28.05.2010 17:34

Цитата:

Сообщение от рони
При современных скоростях это неимеет особого значения

Зажрались епт. Основа: чем меньше запросов к серверу (скрипты, картинки, стили, прочее) - тем лучше и нужно стремиться к этому.
Цитата:

Сообщение от feelman
профи так делают?

Да. Советую собрать "Ядро" в один файл. Остальное грузить там, где это необходимо. Это основы оптимизации. Есть даже экстремальные методы оптимизации, когда стили и скрипты собираются в один (!) файл и вызываются на странице 2 раза - 1 как js, 2 как css, при этом файл загружается 1 раз.

feelman 28.05.2010 22:47

Ясно, все большое спасибо за ответы!

micscr 29.05.2010 10:27

Цитата:

Сообщение от B~Vladi (Сообщение 56891)
собираются в один (!) файл и вызываются на странице 2 раза - 1 как js, 2 как css,

А как они вызываются по раздельному ? Можно поподробнее - последовательность действий ?

Gvozd 29.05.2010 10:33

Цитата:

Сообщение от B~Vladi
стили и скрипты собираются в один (!) файл

как раржпеги чтоли?
слабо себе представляю выходной формат файла, чтобы не конфликтовал с обоими
и почему-то мне кажется что будет убита куча времени на парсинг такого файла

B~Vladi 29.05.2010 12:54

Цитата:

Сообщение от micscr
А как они вызываются по раздельному ?

Цитата:

Сообщение от Gvozd
как раржпеги чтоли?

Цитата:

<!-- /*
function t(){}
<!-- */
<!-- body { background-color: white; }

Когда анализатор CSS будет разбирать вышеупомянутый код, символы комментария HTML будут пропущены, и код станет эквивалентным следующему примеру:
/*
function t(){}
*/
body { background-color: white; }

Анализатор CSS видит только CSS-код, а код скрипта закомментирован (/* ... */). Когда анализатор JavaScript станет разбирать код, символы комментария HTML будут интерпретированы в комментарии строки (//), и, следовательно, код станет таким:
// /*
function t(){}
// */
// body { background-color: white; }

Анализатор JavaScript видит только код скрипта, а все остальное закомментировано. Чтобы ссылаться на этот ресурс, можно использовать теги <script> и <link> на странице. Например:
<link type="text/css" rel="stylesheet" href="test.jscss" />
<script type="text/javascript" src="test.jscss"></script>

Заметим, что эти два тега ссылаются на один тот же ресурс и, следовательно, он загрузится всего один раз и будет интерпретирован и как стили, и как скрипты. Есть еще одна вещь, о которой стоит позаботиться — Content-Type ответа. Его необходимо выставлять в */*, чтобы дать подтверждение Firefox: содержание может быть обработано как что-либо подходящее (как стили или как скрипты). Указанное решение не работает в Safari (1–5% пользователей), однако, конкретно для этого браузера (определив его через User-Agent) уже можно вставить загрузку еще одного файла.
:)

Gvozd 29.05.2010 13:05

интересно
правда, код неверный приведен в примере.
не исполняется в нем JS, и не должен согласно логике статьи
вот так верно:
Код:

<!-- /*
function t(){alert('123');}
<!-- */
<!-- body { background-color: blue; }

вот только не медленнее, ли такая обработка по сравнению со скачкой/парсингом двух достаточно больших файлов валидного синтаксиса

B~Vladi 29.05.2010 17:02

Цитата:

Сообщение от Gvozd
вот так верно:

Найдите 10 отличий:)
В чем разница?
Цитата:

Сообщение от Gvozd
вот только не медленнее, ли такая обработка по сравнению со скачкой/парсингом двух достаточно больших файлов валидного синтаксиса

С чего бы? Распознать комментарии не составляет больших затрат, я думаю. С точки зрения синтаксиса - всё валидно.

B~Vladi 29.05.2010 17:10

Вообще всем советую почитать книжку "Разгони свой сайт" (2008г) - очень полезная вещь.

Gvozd 29.05.2010 21:04

Цитата:

Сообщение от B~Vladi
Найдите 10 отличий
В чем разница?

тем не менее вы исправили свой пост на мой вариант

в вашем первом варианте JS-код был в первой строке, и как следствие закоментирован коментарием строки
ну и соответственно не работал JS

B~Vladi 29.05.2010 21:21

Цитата:

Сообщение от Gvozd
в вашем первом варианте JS-код был в первой строке

А ну это да. Я сразу заметил.


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