|
|
|
|
|
для: tAleks
(18.01.2011 в 19:37)
| | Сказать честно прочитал только вопрос, понял одно -нужно кешировать изображение....
вот тема, я сделал через htaccess и работает отлично.
http://softtime.ru/forum/read.php?id_forum=2&id_theme=75115&page=1 | |
|
|
|
|
|
|
|
для: tAleks
(18.01.2011 в 22:06)
| | Я вообще считаю, что хранить изображения в базе - извращение. Если нужно иметь несколько вариантов водяных знаков, нужно создать несколько папок в которые складывать рисунки уже с нужными водяными знаками (при загрузке изображения сразу обрабатываются, получая несколько нужных копий).
Вопрос о том, как их кешировать отпадает сам собой. Ведь даже анализ того, есть ли файл и какова его дата - это уже некоторая нагрузка на сервер. А так - файлы заранее созданы. Просто бери и передавай их браузеру | |
|
|
|
|
|
|
|
для: tAleks
(18.01.2011 в 22:23)
| | Можно поступить следующим образом
// Запрос к БД
$doc = mysql_query("Запрос");
// отпралявем заголовки
header("Cach-Control: public");
header("Expires: Tue, 18 Jan 2011 01:00:00 GMT");
header("Vari: Content-ID");
header("Content-ID: ".md5(mysql_result($doc, 0, 'docs')));
header("Content-type: ".mysql_result($doc, 0, 'type'));
// Выводим картинку в окно браузера
echo mysql_result($doc, 0, 'docs');
|
| |
|
|
|
|
|
|
|
для: cheops
(18.01.2011 в 22:06)
| | Покажите пример, плиз.
И в моем, вышеописанном, случае, какие лучше заголовки послать? | |
|
|
|
|
|
|
|
для: tAleks
(18.01.2011 в 22:06)
| | я привел пример.
imgref.php порождает страницу с несколькими картинками.
по запросу картинки apache либо берет уже построенную ранее картинку, либо по условию отсутствия файла через Mod Rewrite сваливается в скрипт imgcreator.php с требованием создать файл с картинкой и выбросить его содержимое в поток браузеру, предварив причитающимися заголовками. | |
|
|
|
|
|
|
|
для: Trianon
(18.01.2011 в 22:00)
| | >Я о том, что кешированием должен заниматься http-сервер (apache), а не php-интерпретатор.
>Что если файл уже есть (уже создан php-интерпретатором в процессе обработки некоторого запроса, который был ранее), то на php вообще управление передаваться не должно.
И я примерно так думаю. Вопрос в том, как это реализовать в моем, вышеописанном, случае? | |
|
|
|
|
|
|
|
для: tAleks
(18.01.2011 в 22:04)
| | У них стоят свои тайм-лимиты (хотя вы можете сами его рекомендовать при помощи специальных HTTP-заголовков), они обязательно перепроверят через некоторое время, можете сами тайм-лимиты выставлять, или посылать HTTP-заголовок со временем создания документа (в данном случае изображения), поменялся документ - меняйте время создания. | |
|
|
|
|
|
|
|
для: cheops
(18.01.2011 в 21:59)
| | А когда изображение на сервере изменится? Как об этом узнают все те, кто закешировали предыдущее изображение? | |
|
|
|
|
|
|
|
для: tAleks
(18.01.2011 в 21:53)
| | Я о том, что кешированием должен заниматься http-сервер (apache), а не php-интерпретатор.
Что если файл уже есть (уже создан php-интерпретатором в процессе обработки некоторого запроса, который был ранее), то на php вообще управление передаваться не должно. | |
|
|
|
|
|
|
|
для: tAleks
(18.01.2011 в 21:58)
| | По сути тут один HTTP-заголовок, управления кэшем "Cach-Control: public", который всем встречным говорит - кэшируйте, если можете, нечего беспокоить изначальный сервер. | |
|
|
|
|