2012-07-16 14 views
25

Używam następującego kodu do odświeżania strony, nie jest to ponowne ładowanie po zakończeniu. Poniższy kod nie działa czasami.PHP - strona automatycznego odświeżania

$page = $_SERVER['PHP_SELF']; 
$sec = "10"; 
header("Refresh: $sec; url=$page"); 
echo "Watch the page reload itself in 10 second!"; 
+1

Kto downvoted powinno to skomentować potwierdzające ich problem z pytaniem. – HeatfanJohn

+0

Czy należy go edytować, aby usunąć "z powodu dużego obciążenia na stronie", jeśli tak naprawdę nie miało to nic wspólnego z problemem? – HeatfanJohn

+0

@HeatfanJohn Nie jest źle, gdy pierwszy zaczynasz coś dobrego. Jeśli pytanie jest przydatne, dlaczego nie zagłosujesz samemu. W każdym razie .. Głosuję w górę, ponieważ rozwiązał mój problem. –

Odpowiedz

41

Użyj <meta> przekierowanie zamiast przekierowania nagłówka, tak:

<?php 
$page = $_SERVER['PHP_SELF']; 
$sec = "10"; 
?> 
<html> 
    <head> 
    <meta http-equiv="refresh" content="<?php echo $sec?>;URL='<?php echo $page?>'"> 
    </head> 
    <body> 
    <?php 
     echo "Watch the page reload itself in 10 second!"; 
    ?> 
    </body> 
</html> 
+0

Interesujący pomysł. Przyjmę to do wiadomości. – DrinkJavaCodeJava

+0

Czy te dwie metody nie są w zasadzie równoważne? http://en.wikipedia.org/wiki/URL_redirection#Refresh_Meta_tag_and_HTTP_refresh_header Obaj każą przeglądarce odświeżyć stronę w 10 sekund. Jeśli serwer sieciowy jest przytłoczony żądaniami, zmiana sposobu powiadamiania przeglądarki, jak odświeżyć stronę, nie pomoże, prawda? – HeatfanJohn

+0

@HeatfanJohn - Po pierwsze, odświeżenie nagłówka HTTP nie znajduje się w standardzie HTTP. Po drugie, nie rozpocznie się czas oczekiwania, dopóki HTML nie zostanie wyrenderowany, podczas gdy przeglądarka może odbierać informacje o nagłówku i działać tak, jak chce, ponieważ zachowanie przekierowania nagłówka nie jest standaryzowane. Kod – nickb

21

można użyć

<meta http-equiv="refresh" content="10" > 

wystarczy dodać go po tagach głowy

gdzie 10 jest czasem odświeżenia strony:

7

użyć tego kodu, zostanie ona automatycznie odświeżać w 5 sekund, można zmienić czas w odświeżaniu

<?php $url1=$_SERVER['REQUEST_URI']; header("Refresh: 5; URL=$url1"); ?>

3

Wypróbuj to za dobrze. Twoja strona zostanie odświeżona każdy 10sek

<html> 
<head> 

    <meta http-equiv="refresh" content="10; url="<?php echo $_SERVER['PHP_SELF']; ?>"> 
</head> 
<body> 

</body> 
</html> 
+1

Cześć Gideon afoh, nie jest wymagane przekazywanie php_self w metatagu (tj. Url = ). Bez tego również powinien odświeżać bieżącą stronę co 10 sekund. –

0

Może użyć tego kodu,

<meta http-equiv="refresh" content = "30" /> 

wziąć to łatwe

Powiązane problemy