Автор Тема: Как улучшить загрузку сайта  (Прочитано 7833 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CL2004

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« : 25 Декабря 2004, 13:00:39 »
Здравствуйте!
Как можно ускорить загрузку сайта http://www.citylife.com.ua/?
Для ресайза картинок я там использую скрипт - может из-за этого он так плохо грузится?
 - информационный журнал твоего города

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #1 : 25 Декабря 2004, 13:18:22 »
может

Оффлайн CL2004

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #2 : 25 Декабря 2004, 13:31:49 »
Да у меня 10-15 фотографий и каждая "ресайзица", а если будет грузится "чистая" фотография, то несомненно загрузка будет быстрее.
RomikChef, ты ж опытный, на сколько процентов возрастет загрузка страници, как думаешь?
 - информационный журнал твоего города

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #3 : 25 Декабря 2004, 16:29:03 »
Я опытный программист, а не гадалка.

Оффлайн Abram

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 116
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #4 : 25 Декабря 2004, 17:44:58 »
Извини

Оффлайн Abram

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 116
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #5 : 25 Декабря 2004, 17:47:32 »
Извините а можете мне выслать Ваш скрипт который ресайзит картинки Договоримся в асе - 215697356

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Как улучшить загрузку сайта
« Ответ #6 : 25 Декабря 2004, 20:56:59 »
[OFF]У меня сайт грузиться не больше 2 секунд
может дело в каналах связи[/OFF]
FAQ OFF =)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #7 : 26 Декабря 2004, 12:54:23 »
Abram , а скрипт-то тебе зачем?
чем он тебе поможет?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #8 : 26 Декабря 2004, 13:04:59 »
а скрипт выглядит так:
exec("convert -resize 800x600 $pic");

Оффлайн CL2004

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #9 : 27 Декабря 2004, 10:22:56 »
Цитировать
exec("convert -resize 800x600 $pic");

Привожу весь свой скрипт:

<?
	
$GD1_ENABLED false;
	
$GD2_ENABLED true;

	
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
	
header("Cache-Control: no-cache, must-revalidate");           // HTTP/1.1
  
	
header("Pragma: no-cache");

	
// $QUERY_STRING =
	
//  f(3c9b5fa6bc0fa)  img_file
	
//  s
	
	
	
	
	
	
	
	
	
save
	
//  w(123|15%)        width of output
	
//  h(123|10%)        height of output
	
//  x(123)            max width of output
	
//  y(123)            max height of output
	
//  t(jpg|png)        type of output
	
//  q(100)            quality of jpeg

	
// find tags
	
preg_match_all("/\\+*(([a-z])\\(([^\\)]+)\\))\\+*/"$QUERY_STRING$matches,
PREG_SET_ORDER);

	
// empty array and set regular expressions for the check
	
$tags = array();
	
$check = array(
	
	
\
'f\' => \'[^)+]+\',
	
	
\'s\' => \'[^)+]+\',
	
	
\'w\' => \'[0-9]+%?\',
	
	
\'h\' => \'[0-9]+%?\',
	
	
\'x\' => \'[0-9]+\',
	
	
\'y\' => \'[0-9]+\',
	
	
\'t\' => \'jpg|png\',
	
	
\'q\' => \'1?[0-9]{1,2}\' );

	
// check tags and save correct values in array
	
for ($i=0; $i<count($matches); $i++) {
  
	
if (isset($check[$matches[$i][2]])) {
    
	
if (preg_match(\'/^(\'.$check[$matches[$i][2]].\')$/\',
      
	
$matches[$i][3])) {
        $tags[$matches[$i][2]] = $matches[$i][3];
      }
    }
	
}

	
$filename = $tags[\'f\'];
	
if (!isset($filename)) notfound(); // check that filename is given
	
if (!file_exists($filename)) notfound(); // check if file exists
	
$imginfo = getimagesize($filename); // retrieve file info

	
// Load image
	
switch ($imginfo[2]) {
    case 2: // JPG
      $img_in = ImageCreateFromJPEG($filename) or notfound();
      if (!isset($tags["t"])) $tags["t"] = "jpg";
      break;
    case 3: // PNG
      $img_in = ImageCreateFromPNG($filename) or notfound();
      if (!isset($tags["t"])) $tags["t"] = "png";
      break;
    default:
      notfound();
	
}

	
// check for maximum width and height
	
if (isset($tags["x"])) {
    if ($tags["x"] < ImageSX($img_in)) {
      $tags["w"] = $tags["x"];
    }
	
}
	
if (isset($tags["y"])) {
    if ($tags["y"] < ImageSY($img_in)) {
      $tags["h"] = $tags["y"];
    }
	
}

	
// check for need to resize
	
if (isset($tags[\'h\']) || isset($tags[\'w\'])) {
    // convert relative to absolute
    if (isset($tags[\'w\'])) {
      if (strstr($tags[\'w\'], \'%\')) {
        $tags[\'w\'] = (intval(substr($tags[\'w\'], 0, -1)) / 100) * $imginfo[0];
      }
    }
    if (isset($tags[\'h\'])) {
      if (strstr($tags[\'h\'], \'%\')) {
      
	
$tags[\'h\'] = (intval(substr($tags[\'h\'], 0, -1)) / 100) * $imginfo[1];
      }
    }

    // resize
    if (isset($tags[\'w\']) && isset($tags[\'h\'])) {
      $out_w = $tags[\'w\'];
      $out_h = $tags[\'h\'];
    } elseif (isset($tags[\'w\']) && !isset($tags[\'h\'])) {
      $out_w = $tags[\'w\'];
      $out_h = $imginfo[1] * ($tags[\'w\'] / $imginfo[0]);
    } elseif (!isset($tags[\'w\']) && isset($tags[\'h\'])) {
      $out_w = $imginfo[0] * ($tags[\'h\'] / $imginfo[1]);
      $out_h = $tags[\'h\'];
    } else {
      $out_w = $tags[\'w\'];
      $out_h = $tags[\'h\'];
    }

    // New image in $img_out
	
	
if ($GD1_ENABLED) {
	
	
	
// Utilisation de GD version 1.6+
    
	
$img_out = ImageCreate($out_w, $out_h);
    
	
ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, ImageSX($img_out),
ImageSY($img_out), ImageSX($img_in), ImageSY($img_in));
	
	
} else if ($GD2_ENABLED) {
	
	
	
// Utilisation de GD version 2.0
    
	
$img_out = ImageCreateTrueColor($out_w, $out_h);
    
	
ImageCopyResampled($img_out, $img_in, 0, 0, 0, 0, ImageSX($img_out),
ImageSY($img_out), ImageSX($img_in), ImageSY($img_in));
	
	
} else {
	
	
	
$img_out = $img_in;
	
	
}
	
} else {
    // no resize needed
    $img_out = $img_in;
	
}

	
// check for a given jpeg-quality, otherwise set to default
	
if (!isset($tags[\'q\'])) {
    $tags[\'q\'] = 75;
	
}

	
// returning the image
	
switch ($tags[\'t\']) {
    case \'jpg\':
	
	
	
if (!isset($tags[\'s\'])) {
	
	
	
	
header(\'Content-type: image/jpeg\');
	
	
	
	
ImageJPEG($img_out, \'\', $tags["q"]);
	
	
	
} else {
      
	
ImageJPEG($img_out, urldecode($tags[\'s\']), $tags["q"]);
	
	
	
	
header(\'Location: \' . FUNCTION_getRelativePath(urldecode($tags[\'s\'])));
	
	
	
}
	
	
	
ImageDestroy($img_out);
      exit;
    case \'png\':
      if (!isset($tags[\'s\'])) {
	
	
	
	
header(\'Content-type: image/png\');
      
	
ImagePNG($img_out);
	
	
	
} else {
	
	
	
	
ImagePNG($img_out, urldecode($tags[\'s\']));
	
	
	
	
header(\'Location: \' . FUNCTION_getRelativePath(urldecode($tags[\'s\'])));
	
	
	
}
	
	
	
ImageDestroy($img_out);
      exit;
   default:
      notfound();
	
}

	
function notfound() {
	
	
	
header(\'Location: error.gif\');
	
	
	
exit;
	
}
?>

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

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Как улучшить загрузку сайта
« Ответ #10 : 27 Декабря 2004, 11:00:17 »
CL2004

ИМХО, перед написанием столь громадного количества строк не помешало бы задуматся о том, что  нужны ли они вообще ? :)

[OFF] Удачи в разработках. [/OFF]
« Последнее редактирование: 27 Декабря 2004, 11:31:06 от for_i_0 »
[off]Безработный[/off]

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #11 : 27 Декабря 2004, 12:49:56 »
CL2004
Ещё как получается.
В любом случае, надо понимать две вещи:
1. Даже при использовании GD размер твоего скрипта можно сократитьна порядок.
2. КАКОЙ БЫ СКРИПТ НИ БЫЛ, автору топика он не поможет. Вообще никакой. любой.

Оффлайн CL2004

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #12 : 27 Декабря 2004, 18:21:30 »
Цитировать
exec("convert -resize 800x600 $pic");

Не каждый хостер разрешает использовать функцию exec

Цитировать
Даже при использовании GD размер твоего скрипта можно сократитьна порядок.

Как? Подскажи
 - информационный журнал твоего города

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #13 : 27 Декабря 2004, 19:31:49 »
Цитировать
CL2004:
Не каждый хостер разрешает использовать функцию exec

не каждый хостер разрешает использовать пхп.
так что - никаких программ. Всё ручками.

Цитировать
CL2004:
Как? Подскажи

если мне скажут, что эта функция делает.
А вообще, с опытом и сам поймешь - как

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Как улучшить загрузку сайта
« Ответ #14 : 27 Декабря 2004, 19:35:19 »
к примеру, отсуда можно выкинуть весь разбор "тегов".
Вообще непонятно, чем не устраивает стандартная передача параметров.

собственно, вся функция - бессмысленная.
На лету размер картинок меняют только женихи и студенты,

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28