У меня проблема с моими автоматическими генерирующими изображениями.Медленная загрузка с большим количеством генерируемых PHP изображений
У меня есть PHP-скрипт, который получает URL-адрес изображения и генерирует это изображение в запрошенных размерах и модификациях по параметру «m» в URL-адресе. Он может изменять размеры и прочее.
С одной или нескольких фотографий, это здорово - как: http://www.jaarda.eu/upload/pluginGallery/129b12182490d9e191b3a7cdd4fcf704?m=wh_400-400
Но в большом количестве, у меня есть проблемы с не загружая некоторые элементы. Проверьте на http://www.jaarda.eu/.
Я не думаю, что это проблема сервера, процессоры не идут на максимум и память тоже. Скрипт, который генерирует изображения, даже отправляет заголовки кеша, но все равно никаких изменений - на странице с большим количеством изображений, таких как jaarda.eu, является проблема. Создание других размеров изображения происходит не каждый раз, когда возникает сценарий - изображение генерируется только один раз, а затем сохраняется на сервере для повторного использования. Я даже пытаюсь многократно увеличить мощность моего VPS и без изменений.
Эта проблема не показывает в Safari, только IE, Chrome, и т.д ...
Это конец моего сценария, где функционирует кэширование и тип отправки:
$modified = filemtime($file);
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$request_modified = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);
if ($modified <= $request_modified) {
//header('HTTP/1.1 304 Not Modified');
header('HTTP/1.1 304 Not Modified', true, 304);
}
}
header("Last-Modified: ".gmdate('D, d M Y H:i:s', $modified)." GMT");
header("Cache-Control: public, max-age=7200");
header("Expires: " . gmdate('D, d M Y H:i:s', time()+7200) . ' GMT');
header('Content-Length: ' . filesize($file));
header('Content-Type: '.$type);
readfile($file);
Спасибо вам много для идей, как решить эту проблему.
EDIT
меня улучшить мою ситуацию, использовать функции ob_ в моем коде, но это не является совершенным до сих пор. Лучше, только одно из двух изображений не загружается, но все же не идеально. Проблема остается в хром с перезагрузкой ctrl + f5, поэтому спасибо за любую идею.
$modified = filemtime($file);
ob_start("");
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$request_modified = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);
if ($modified <= $request_modified) {
//header('HTTP/1.1 304 Not Modified');
header('HTTP/1.1 304 Not Modified', true, 304);
}
}
header("Last-Modified: ".gmdate('D, d M Y H:i:s', $modified)." GMT");
header("Cache-Control: public, max-age=7200");
header("Expires: " . gmdate('D, d M Y H:i:s', time()+7200) . ' GMT');
header('Content-Length: ' . filesize($file));
header('Content-Type: '.$type);
ob_end_clean();
ob_clean();
flush();
readfile($file);
exit();
Вы можете оставить изменение размера кода –