Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   СБОРЩИК СКРИПТОВ в один файл!!!!! (https://javascript.ru/forum/misc/24478-sborshhik-skriptov-v-odin-fajjl.html)

Livaanderiamarum 01.01.2012 19:46

СБОРЩИК СКРИПТОВ в один файл!!!!!
 
Что делает:
Собирает скрипты в один файл и отдает его клиенту. таким образом достигается ускорение загрузки странички так как не тратится время на запросы для каждого скрипта. Потом браузер кэширует этот большой скрипт.

Скрипты подключаем так:
Пути относительно местонахождения файла JSCompliter.php. разделять пути к скриптам точкой с запятой.

<script type="text/javascript"
	src="JSCompliter.php?scripts=
			jquery-1.7.js;
			preset.js;
			js/libs/jquery.animate-shadow-min.js;
			js/libs/jquery.transform.js;
			js/libs/jquery.easing.1.3.js;
			js/libs/jquery.mousewheel.min.js;
			js/libs/jquery.FX.js;
			js/libs/jquery.rclick.js;
			js/libs/jquery.scrollbar.js;
			js/libs/jquery.UI.js;
			js/libs/jCanvaScript.js;
			windows.js;
			js/parseTegs.js;
			widgets.js;
	"></script>





собственно код JSCompliter.php
<?php
/**
 * @author Maxmaxmaximus
 * @version 1.0
 */
Header("content-type: application/x-javascript");

//список адресов скриптов
$scripts = split(';', $_GET['scripts']);
//последнее изменение
$max = 0;
//для каждого элемента списка
for ($i = 0; $i < count($scripts); $i++) {
	$url = $scripts[$i];
	$ThisMax = filemtime($url);
	//определяем последнее изменение одного из скриптов
	if($ThisMax > $max){
		$max = $ThisMax;
	}
}
//если обнаружена разница во времени
if(file_get_contents('version.txt', NULL, NULL, 0, 10) != $max ||
//или в запросе
$_GET['scripts'] != file_get_contents('version.txt', NULL, NULL, 10))
{
	//пересобираем
	for ($i = 0; $i < count($scripts); $i++) {
		$url = $scripts[$i];
		$final .= file_get_contents($url);
	}
	//возвращаем собранный скрипт
	echo $final;
	//записываем последнее изменение
	file_put_contents('version.txt', $max . $_GET['scripts']);
	//кэшируем скрипт
	file_put_contents('compliteScript.js', $final);
	return true;
}
else//иначе
{
	//возвражаем готовую копию
	echo file_get_contents('compliteScript.js');
}
?>

dmitriymar 01.01.2012 19:51

Цитата:

Сообщение от Livaanderiamarum
//кэшируем скрипт
file_put_contents('compliteScript.js', $final);

всё по прежнему-читай маны

Livaanderiamarum 01.01.2012 19:54

Цитата:

Сообщение от dmitriymar (Сообщение 147590)
всё по прежнему-читай маны

не понял

dmitriymar 01.01.2012 19:57

Цитата:

Сообщение от Livaanderiamarum
не понял

всё как всегда-куча бреда и основы,основы....

Livaanderiamarum 01.01.2012 20:02

Цитата:

Сообщение от dmitriymar (Сообщение 147593)
всё как всегда-куча бреда и основы,основы....

я тебя не понял, в моем скрипте что-то не так?

dmitriymar 01.01.2012 20:04

Цитата:

Сообщение от Livaanderiamarum
я тебя не понял, в моем скрипте что-то не так?

:agree: а когда у тебя в скриптах всё было так?:)

Livaanderiamarum 01.01.2012 20:14

Цитата:

Сообщение от dmitriymar (Сообщение 147596)
:agree: а когда у тебя в скриптах всё было так?:)

я по моему вопрос задал).
п.с. ты хочешь сказать я плохой программист?

dmitriymar 01.01.2012 20:36

Цитата:

Сообщение от Livaanderiamarum
п.с. ты хочешь сказать я плохой программист?

дак я и не говорил что ты программист:)
Цитата:

Сообщение от Livaanderiamarum
я по моему вопрос задал)

ответ прост-в очередной раз бред написан

B@rmaley.e><e 01.01.2012 21:38

Я тоже считаю, что написано фигово.

Коль скоро тов. Livaanderiamarum всё знает и любит тестировать окружающих на знание чего-либо, то вот тест для всех желающих:
С первого прочтения найти фатальный промах. Кто не найдёт — тому лучше не писать серьёзных приложений. :-)

Nekromancer 01.01.2012 21:56

B@rmaley.e><e,
я не знаю php, но вроде как "header" пишется с маленькой буквы, да и mime type кривой. Может в php конечно пофиг на регистр, но всё же.


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