Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: кэширование

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: страница долго грузится..
phphel
Отправлено: 13 Февраля, 2010 - 12:38:03
Post Id


Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




У меня есть скрипт, который выдаёт кучу картинок через ресайзер
то есть <img src=script.php?img=kartinka.jpg>

и я так подозреваю, что это сильную нагрузку на сервер производит, да и
вообще страница начинает медленнее грузиться, может есть какой выход?
кеширование сделать там..подскажите..
 
 Top
JustUserR
Отправлено: 13 Февраля, 2010 - 13:15:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




phphel Вообще если картинка в теги img выглядит именно так без дополнительного JS-кода то браузеры зачастую вообще не запрашивают ее повторно - но при этом ничто не мешает сохранять вам сгенерированные картинки в определенную папку и потом ссылать уже на готовые картинки


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
phphel
Отправлено: 13 Февраля, 2010 - 13:19:45
Post Id


Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Цитата:
но при этом ничто не мешает сохранять вам сгенерированные картинки в определенную папку и потом ссылать уже на готовые картинки


такой вариант отпадает сразу, я бы и тему не создавал, если бы он был возможен ))
никакого js кода нет...
(Добавление)
сайт для телефонов, так что браузер не кэширует..
 
 Top
JustUserR
Отправлено: 13 Февраля, 2010 - 13:39:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




phphel пишет:
Сайт для телефонов, так что браузер не кэширует
Итак понятно что кеширование на клиенте отпадает и вариант с простым сохранением картинок в сгенерированную папку отпадает тоже - но к примеру если речь идет не о долговременном сохранеии картинок - то можно воспользоваться memcached и проверять и перед тем как начать генерировать картинку проверять нет ли уже такой в кеше


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
phphel
Отправлено: 13 Февраля, 2010 - 13:45:09
Post Id


Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




ok, щас буду читать насчет memcached, так как первый раз с ним сталкиваюсь )

но мне бы все таки решение для долгосрочного хранения..
(Добавление)
не в качестве рекламы http://webo[dot]in/articles/all/http-caching/ отличная статья про кэш..

и опять вопрос, как мне сделать, что бы кэшировались только картинки?так как страница на которой они расположены динамическая...
 
 Top
voltag
Отправлено: 13 Февраля, 2010 - 16:37:09
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Янв. 2010  


Помог: 1 раз(а)




Здравствуйте.
Недавно сам разбирался с такой проблемой.
Настоятельно советую при помещении самих картинок на сайт(загрузке) их ресайзить и только потом при обращении пользователя выводить в ХТМЛ. Если Вы грабите картинки, то можете написать Кешь простой... обращайтесь к картинке.. сравниваете например 10 пикселей и решаете забирать картинку в Кешь или нет..После этого выводите нормальный контент.. можете делать Хешь графического файла и сравнивать Хеши.
Хотел поинтересоваться а куча картинок это сколько примерно в цифрах.

phphel пишет:
Цитата:
но при этом ничто не мешает сохранять вам сгенерированные картинки в определенную папку и потом ссылать уже на готовые картинки


такой вариант отпадает сразу, я бы и тему не создавал, если бы он был возможен ))


поясните почему он отпадает... простите но я не понял. Даже если у Вас около 5 тысяч картинок можно просто распихать их правильно по папкам. И тормозов не будет.
 
 Top
phphel
Отправлено: 13 Февраля, 2010 - 19:19:01
Post Id


Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Картинок намного больше чем 5000...

Цитата:
но при этом ничто не мешает сохранять вам сгенерированные картинки в определенную папку и потом ссылать уже на готовые картинки


это отпадает так как придётся переписывать очень много в скрипте, я и сам понимаю, что это лучший вариант...
но еще проблема в том, что картинок как я уже говорил очень большое количество, и на ресайз, + раскидывание по папкам, а это
естественно добавляет еще проблем, + сайт для телефонов...ресайзить правильно оч сложно...

ладно, как я понял, все таки нужно переписывать сам скрипт...
 
 Top
voltag
Отправлено: 14 Февраля, 2010 - 09:55:48
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Янв. 2010  


Помог: 1 раз(а)




phphel пишет:
Картинок намного больше чем 5000...


Вот Вам маленький совет по раскидыванию в папках графических файлов.... (или решение)
Для того чтобы не нагружать Ваш сервер Вы можете создать специфическое древо каталогов(как бы индексирование).
Пример:
дано: 5 тысяч картинок с именами в виде ХЕША самих картинок.
Решение:
Создаём директории для картинок например massimg
потом в этой директории создаём директории от A до Z и от 0-9 и помешаем туда картинки. Признак того, что картинку надо положить в директорию служит первая буква Хеша.... таким образом мы уменьшаем количество картинок в директории.. и потом мы сможем легко вычислить путь до них... если имя картинки есть в базе. Если и этого не хватает можно углубить до уровня 2... создать в каждом первичном каталоге от A до Z... ещё группу каталогов от A - Z 0-9 и помешать в соответсвии с первыми Двумя буквами:

Например Хешь МД5 картинки (её файловое имя) вот такой
c93d3bf7a7c4afe94b64e30c2ce39f4f

значит надо её поместить в каталоги с/9/ или massimg/c/9/

Лучше конечно создавать папки динамически (по мере надобности) чтобы не плодить лишнего.

Надеюсь Вам поможет
 
 Top
JustUserR
Отправлено: 14 Февраля, 2010 - 11:16:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




[quote=phphelОтличная статья про кэш.. и опять вопрос, как мне сделать, что бы кэшировались только картинки?так как страница на которой они расположены динамическая...[/quote]Хм так вы не остановились на использовании memcached - ведь на вашем сайте скорее всего не требуются все 5000 картинок сразу - а при обращении к наиболее частым их можно закешировать на некоторое время - это впринципе некая середина между временем на генерацию и местом для сохранения картинок
voltag пишет:
Поясните почему он отпадает... простите но я не понял. Даже если у Вас около 5 тысяч картинок можно просто распихать их правильно по папкам. И тормозов не будет.
Да действительно я соглашусь с вами ведь если важно именно быстродейсвтие то необходимо просто сохранить эти картинки по папкам и выводить их - при этом и расположения не так важно если иметь номер картинки по некоторым паравилам


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
valenok Модератор
Отправлено: 14 Февраля, 2010 - 11:34:54
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




5000 картинок хранить в памяти, да и 1000 — не очень хорошая затея.
Вариантов на самом деле не много. Можете их даже хранить не у себя, а заливать на какой нибудь imageshack и сохранять в базе путь.
Но мне не очень понятно чего вы хотите добиться, если переписывать скрипт или что-то менять в структуре каталогов не входит в ваши интересы.


-----
Truly yours, Sasha.
 
My status
 Top
JustUserR
Отправлено: 14 Февраля, 2010 - 11:45:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




valenok пишет:
5000 картинок хранить в памяти, да и 1000 — не очень хорошая затея.
Я имел в виду не все 5000 картинок хранить в memcached а те последние одинаковые которые выдавались пользователю - и с ограничением по времени на хранения Улыбка Я с самого начала предлагал варианет с сохранением картинок в виде файлов в папке но автору такое не подходило Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
voltag
Отправлено: 14 Февраля, 2010 - 14:43:51
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Янв. 2010  


Помог: 1 раз(а)




Я думаю все наши советы и решения не попадут в точку пока мы не узнаем истинную задачу. Потому, что мы обсуждаем усовершенствование метода решения задачи о которой мы по большому счёту ничего не знаем, кроме того что есть сайт для мобильных телефонов на котором надо выводить картинки, причём урезаные!!???
Прошу Вас phphel уточнить саму задачу. Мы не знаем что это за сайт, можно ли вообще менять код или можно менять шаблогы... можно ли лезть в Базу(а её может и не быть).. откуда наконец берутся картинки, они грабятся, они уже залиты на сервер, они заливаются на сервер каждый день по 1 тысячи штук в архиве...
И сколько намного больше 5000!??? 10К -20К... миллион??? Если варианты не подходят, то я могу предположить или догадываться, что Вы, например, делайте минигугл с поиском картинок и их обрезаете или что-то типо этого????

Вариант от valenok - отличный
Вариант от JustUserR - отличный
 
 Top
phphel
Отправлено: 14 Февраля, 2010 - 17:18:07
Post Id


Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




voltag, спасибо, способ хороший, но у меня немного другая проблема ))
с вложенностью всё норм..

JustUserR, я так понял что memcached здесь будет лишним..

решил проблему так, что вместо ресайза "на лету", буду сначала ресайзить их
на локальном сервере, потом закачивать, а уж потом отдавать юзеру в нужном формате.

спасибо всем кто откликнулся в решении данного вопроса.

to voltag:

всё проще..

есть скрипт, для вап сайта, что-то наподобие "ленты новостей".

сначала в админке добавляешь новость, потом сами картинки, причём в нынешней версии картинки добавляются "как есть"

но это админка, дальше уже идёт пользовательский интерфейс, тоесть, юзерам нужно выводить картинки в уменьшенном виде,
примерно по 10 шт на 1 странице, естественно, что при клике на картинку, предлагается скачать ее, в разных форматах,
опять же на лету всё делается...
 
 Top
voltag
Отправлено: 14 Февраля, 2010 - 18:19:57
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Янв. 2010  


Помог: 1 раз(а)




phphel я рад что проблема решилась
 
 Top
JustUserR
Отправлено: 14 Февраля, 2010 - 18:29:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




phphel пишет:
JustUserR, я так понял что memcached здесь будет лишним..
Решил проблему так, что вместо ресайза "на лету", буду сначала ресайзить их
на локальном сервере, потом закачивать, а уж потом отдавать юзеру в нужном формате.
Понятно то есть вы все равно держите оба варианта картинки - уменьшенный вариант и оригинальный вариант - и кстати как вариант можно использовать ресайз на клиенте например посредставами ActiveX или Flash и закачкой соответствующих вариантов на сервер - тем более что на браузере у администратора по сути можно устанавливать любые средства
voltag пишет:
Вариант от valenok - отличный
Вариант от JustUserR - отличный
Да в принципе это достаточно стандартные решение при подходе с разной стороны


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB