모든 것이 잘 작동하지만 유일한 문제는 매우 느리게로드된다는 것입니다. 265 개의 이미지가 포함 된 페이지를로드하는 데 7 초가 걸립니다. 이미지는 원격 서버에 있지 않으며 미리보기 이미지입니다. 실제 높이/너비로 표시되기 때문에 서버는 크기를 조정할 필요가 없습니다.PHP 스크립트가 몹시 천천히
이미지의 이전 반복에도 모든 이미지에도 getimagesize() 함수가 있고 문제없이로드 된 getimagesize()가 없어야합니다.
문제가 될 수있는 유일한 점은 데이터베이스입니다. |
:
TABLE 앨범 :이 설정입니다 이드 | naam | urlnaam | 행동 |
TABLE의 사진을 보시려면 :
| 이드 | url | ext | 설명 | 앨범 |
따라서 사진의 앨범 ID는 앨범의 ID와 연결됩니다. 나는 이미지 자체 동적으로도 생성되지 않습니다 받아
$album = mysql_real_escape_string($_GET['fx2']);
mysql_select_db('user_fotos');
$i = 0;
$sql = mysql_query("SELECT a.naam, b.url, b.ext, b.description, b.id FROM albums AS a LEFT JOIN fotos AS b ON a.id = b.albumid WHERE a.urlnaam = '$album'");
while($row = mysql_fetch_assoc($sql)){
if($i == 0){
echo "Album: {$row['naam']}<br />";
echo "<table><tr>";
}
if($i % 4 == 0){echo "</tr><tr>";}
echo "<td align='center'>";
$photourl = "http://www.mysite.com/fotos/$album/thumbs/" . $row['url'] . $row['ext'];
$dimensions = getimagesize($photourl);
$breedte = $dimensions[0];
$lengte = $dimensions[1];
if($breedte == '120'){$aspect="width='120px' height='{$lengte}px'";}else{$aspect="height='120px' width='{$breedte}px'";}
echo "<div class='imageHolder' style='width:{$breedte}px; height:{$lengte}px;' onClick=\"parent.location='$album/{$row['id']}'\" /><img $aspect src='http://www.mysite.com/fotos/$album/thumbs/" . $row['url'] . $row['ext'] . "' alt='{$row['description']}' /></div>";
echo "</td>";
$i++;
}
echo "</tr></table>";
"이미지가 원격 서버에 없으며 미리보기 이미지입니다." - getimagesize에 HTTP URI를 전달하기 때문에, HTTP 서버는 그 서버에 연결하여 HTTP를 통해 해당 이미지를 다운로드해야합니다. – DCoder
너무 오래 걸리는 이유는 각 사진을 URL에서 가져 와서 크기를 조정 한 다음 원본 크기를 출력해야하므로 imagesize() 및 style = 'width : {$ breedte} px; 높이 : {$ lengte} px; ''부분 다음 이미지는 크기를 확인하는 시간/리소스/대역폭을 낭비하지 않으면 서 원래 크기가 될 것이므로 결과와 결과도 캐시해야합니다. –
@DCoder - 잘 발견되었습니다. 이미지가 원격이 아닌 경우 로컬 파일 시스템을 통해 액세스해야합니다. – halfer