Кеширование динамических изображений в фотоальбоме

server

Новичок
Кеширование динамических изображений в фотоальбоме

Решаю задачу создания фотоальбома на javascript . Вот код который не работает с кэшированием для изображений которые генерируется (для статических нужно просто заменить /image/777 - на /image/777.jpg например и.т.д и тогда всё сохраняется в объектах Image и подгружаются только когда такой картинки нет. Для генерируемых изображений - они все время подгружаются, в этом и проблема ):
PHP:
// JAVASCRIPT 
var id = 0, load_time_wait = 30,timer_id,loop_index;
var ArrayImg = new Array();
function onload (obj) {
var i = 0;
if (obj.complete) {
	document.image.src= obj.scr;
	//alert (obj.scr);
	clearInterval(timer_id);
	loop_index = 0;
}  else {
		loop_index++;
		if (loop_index > load_time_wait)
			{ alert ('EXIT!!');
				clearInterval(timer_id);
			}
	} 

}

function post (action) {
	var a = action;
	if (ArrayImg[0] == null) {
		ArrayImg[0] = new Image();
		ArrayImg[0].scr = "/image/777" ;
	}
	document.image.src = ArrayImg[0].scr;
	if (a == 'up') id++;
	if (a == 'down') id--;
	if (id < 1) id = 15;
	if (id >15) id = 1;
	if (ArrayImg[id] == null) {
		ArrayImg[id] = new Image();
		ArrayImg[id].scr = "image/"+id  ;
		obj = ArrayImg[id];
	} else obj = ArrayImg[id];
	clearInterval(timer_id);
	timer_id = setInterval("onload(obj)",1000); 
	
}
Я посылаю на запрос по url следующие заголовки (я так понимаю что тут собака зарыта :(((( ) :
PHP:
//PHP
ob_end_clean();
$headers = array(
        'Content-Type: '.mime_header_encode('image/jpeg'),
        'Content-Length: '. $filesize,
	'Last-Modified: ' . gmdate("D, d M Y H:i:s",mktime (0,0,0,1,1,2000)) . ' GMT',
	'Expires: Mon, 26 Jul 2040 05:00:00 GMT',
	'Cache-Control: max-age=10000000, s-maxage=1000000, proxy-revalidate, must-revalidate',
      );
foreach ($headers as $header) {
    $header = preg_replace('/\r?\n(?!\t| )/', '', $header);
    header($header);
  }

  if ($fd = fopen('image.jpg', 'rb')) {
    if (!ini_get('safe_mode')){
      set_time_limit(0);
    }
    while (!feof($fd)) {
      print fread($fd, 1024);
      ob_flush();
      flush();
    }
    fclose($fd);
  }
В чем проблема не знаю....
 

server

Новичок
Проблема была в http://en.wikipedia.org/wiki/HTTP_ETag и в том, что надо теперь отвечать на каждый запрос либо 'HTTP/1.x 304 Not Modified' , либо 'HTTP/1.x 200 OK' , а браузер за меня это делал ... в принципе даже не важны заголовки, как сам ответ... просто если ответить 'HTTP/1.x 304 Not Modified' , а изображения не будет в кэше, то его и не будет (((( Жалко только под вечер столько времени провозился с такими простыми вещами ...
 
Сверху