을에서 이미지로드를 가속화 내 구문은 다음과 거의 같습니다는 DB
<img src="image_loader.php?id=4"></img>
image_loader.php에 대한 나의 PHP가 보이는 같은 :
<?php
/* I set up my connection using mysql_connect and mysql_select_db */
$query = sprintf("SELECT ... FROM ... WHERE id='".$_GET["id"]."'");
$result = mysql_query($query, $con);
mysql_close($con);
if (!$result) {
// no result
}
else {
$row = mysql_fetch_row($result);
header('Content-type: image/png');
echo $row[0];
mysql_free_result($result);
}
?>
각 이미지는 약 10-13k이지만 묶음이 매우 느리게로드되는 것 같습니다. 브라우저가 한 번에 실행할 수있는 요청 수가 많지만 기다리는 시간은 아무런 문제가없는 것처럼 보입니다.
데이터베이스에서 이미지를 빠르게로드하는 방법에 대한 제안 사항이 있으십니까?
또한이 질문은 거의 별개의 질문이지만 브라우저 (또는 서버)에 현재 .gif/.png/.jpg srcs로 이미지를 캐시하도록 지시 할 수 있습니까? Firefox는 그렇지만 Chrome은 그렇지 않은 것으로 보이지만 확실하지 않습니다.
캐시 헤더가 올바르게 설정되어 있고 URL이 변경되지 않으면 이미지를 캐싱해야합니다. 대역폭에 문제가 있고 동일한 이미지를 자주 보내는 경우 서버에 대한 쿼리가 하나만 있도록 이미지를 결합해야합니다 (실제로는 이미지에 따라 달라 지지만 예를 들어 12 개의 작은 이미지를 지불하는 경우). –
브라우저가 질의 문자열을 가지고 있기 때문에 이미지를 캐싱하지 않았을 가능성이 있으며'image_loader \ 4.jpg '와 URL 재 작성을 연결하는 것을 고려할 수 있습니다. dystroy가 하나의 윤곽선 [여기] (http://www.guistuff.com/css/css_imagetech1.html)과 유사한 기술을 사용하여 제안 할 때 이미지를 "타일링"할 수도 있습니다. – jedwards
나는 또한 데이터베이스에 이미지를 저장하는 것이 가장 합리적인지 고려할 것입니다. 그러나 각 이미지에 파일 시스템의 고유 한 파일 이름을 부여하고 ***을 데이터베이스에 저장하는 것이 더 빠를 수도 있으므로 심각하게 고려해야 할 수도 있습니다.'fopen()'을 수행하는 일반 PHP 스크립트를 요청하는 것과는 반대로 클라이언트로부터 파일 ***을 직접 요청할 수 있다면 추가 속도를 얻을 것입니다. – jedwards