Mam stronę opartą na podstronach. Chciałbym przeładowywać automatycznie podstrony. Odliczam czas tak:
<script type="text/javascript">
function countTime(tid, how) {
hrs = Math.floor(how / 3600);
min = Math.floor((how - hrs * 3600) / 60);
sec = how - min * 60 - hrs * 3600;
if (hrs < 10) { hrs = "0" + hrs; }
if (min < 10) { min = "0" + min; }
if (sec < 10) { sec = "0" + sec; }
if (how > 0) {
how--;
document.getElementById(tid).innerHTML = hrs + ':' + min + ':' + sec;
setTimeout("countTime('"+tid+"',"+how+")", 1000);
}
}
</script>
Licznik wyświetlam w SPAN. Po odliczeniu czasu, chcę przekierować (odświeżyć) podstronę tak:
header("refresh: ".$event['ft']."; url='index.php?go=account"); // próbowałem też:
echo '<meta http-equiv="'.$event['ft'].'" content="X; URL=index.php?go=account">';
Całość próbnego kodu:
<?php
// DANE DO TESTU
$ref = 0;
$event['ft'] = 10;
$event['type'] = 1;
$event['event'] = 3;
if($ref == 0) {
header("refresh: ".$event['ft']."; url='index.php?go=account"); $ref = 1;
}
$ft = $event['ft'];
if($event['type'] == 1) {
?>
<div style="margin-bottom: 10px">
<?php echo $event['b_name'] ?> <span style="float: right">
<span id="t
<?php echo $event['event'] ?>"></span>
</span>
<script type="text/javascript">countTime('t
<?php echo $event['event'] ?>',
<?php echo $ft ?>);</script>
</div>
</div><!-- blok -->
<?php
}
?>
Problem polega na "podskakiwaniu" strony przy uruchamianiu i odświeżaniu, po za tym, nie przeładowuje strony. Problem znika po zakomentowaniu linii z header.
DEMO.
Dodam, że używam ob_start / ob_end_flush.