[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Можно ли собрать все js в одном файле?
Strannik
Добрый вечер.

Вопрос конечно не совсем по линии php, но все же...

В файле подключено много js, получается ерунда, вроде:

<script type="text/javascript" src=".../jquery.form.js"></script>
<script
src=".../jquery.mousewheel.js"></script>
<script
src=".../jquery.scrollpane.js"></script>
<script
src=".../jquery.core-ui-select.js"></script>
<script
src=".../jquery.ui-slider.js"></script>


и так строчек с подключенными js около 10-15 в каждом файле....

Подскажите можно ли собрать все js в одном файле, а к index.php подключать лишь этот файл?

Например создать файл example с строками:

<script type="text/javascript" src=".../jquery.form.js"></script>
<script
src=".../jquery.mousewheel.js"></script>
<script
src=".../jquery.scrollpane.js"></script>
...
...
...
...
<script src=".../jquery.core-ui-select.js"></script>
<script
src=".../jquery.ui-slider.js"></script>


а к файлу index.php подключить лишь example...

Возможно ли это и какой файл example нужно создать(js, php, html или другой) и какое подключение использовать (include, require или другое) ?
Hello
https://developers.google.com/closure/compiler/
Скармливаешь много js, получаешь один оптимизированный и минифицированный
Запускать из консоли, должна стоять java

_____________
VPS от 5$, первые 2 месяца - бесплатно.
waldicom
http://jscompress.com/

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Nikitian
Я бы не рекомендовал склеивать. Бывают косяки, да и править очень неудобно. Предпочитаю использовать либу http://headjs.com/ для паралелльной загрузки - страницы открываются существенно быстрее.
waldicom
Цитата (Nikitian @ 24.01.2013 - 11:38)
Я бы не рекомендовал склеивать. Бывают косяки, да и править очень неудобно. Предпочитаю использовать либу http://headjs.com/ для паралелльной загрузки - страницы открываются существенно быстрее.

мы при deplyoment склеиваем и минимируем файлы.
У программистов всегда нормальные копии, а jenkins делает из них минифицированные версии.
За либу спасибо, интересно посмотреть.

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
killer8080
Цитата (Nikitian @ 24.01.2013 - 12:38)
Предпочитаю использовать либу http://headjs.com/ для паралелльной загрузки - страницы открываются существенно быстрее.

А смысл в этом костыле? Количество запросов к серверу он все равно не уменьшает, только распаралелливает запросы. Учитывая что скрипты грузятся только при первом запросе, последующие возвращают только заголовки с 304-ым статусом. Одни запрос против 10 всегда лучше
.
Цитата (Nikitian @ 24.01.2013 - 12:38)
Я бы не рекомендовал склеивать. Бывают косяки, да и править очень неудобно.

При постом склеивании никаких косяков не будет (если в том же порядке склеины, что и подключаются), косяки могут быть только от кривых минимизаторов. Править минимизированные файлы не нужно, их нужно пересоздавать из исходника, в который вносятся изменения.
Strannik
это если мин делать, я имел же ввиду немного другое - как в php:

index.php

require_once('functions.php');


а functions.php содержит:

require_once('function1.php');
require_once('function2.php');
require_once('function3.php');
.....

require_once('functionN.php');


интересует как такое же сделать с файлами js - тупо также как и по примеру, или по-другому?

P.S.: за ответы спасибо конечно, новые знания всегда нужны )
killer8080
Цитата (Strannik @ 25.01.2013 - 19:35)
интересует как такое же сделать с файлами js - тупо также как и по примеру, или по-другому?

тупо сливаешь содержимое всех js файлов в один, но обязательно в том же порядке, как они подключались на странице. И подключаешь один этот файл, вместо пачки.
Цитата (Strannik @ 25.01.2013 - 19:35)
это если мин делать

а минимизировать все таки желательно.
Nikitian

function include( filename ) { // The include() statement includes and evaluates the specified file.
//
// + original by: mdsjack (http://www.mdsjack.bo.it)
// + improved by: Legaev Andrey
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + improved by: Michael White (http://crestidg.com)
// % note 1: Force Javascript execution to pause until the file is loaded. Usually causes failure if the file never loads. ( Use sparingly! )


var js = document.createElement('script');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', filename);
js.setAttribute('defer', 'defer');
document.getElementsByTagName('HEAD')[0].appendChild(js);

// save include state for reference by include_once
var cur_file = {};
cur_file[window.location.href] = 1;

if (!window.php_js) window.php_js = {};
if (!window.php_js.includes) window.php_js.includes = cur_file;
if (!window.php_js.includes[filename]) {
window.php_js.includes[filename] = 1;
} else {
window.php_js.includes[filename]++;
}

return window.php_js.includes[filename];
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.