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

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, время: 23:28.