czy mówimy o synchronizacji (napotykasz sytuację, w której chcesz odświeżyć się podczas analizowania skryptu php) refrehs (odświeżanie meta działałoby dobrze) czy o ciągłym odświeżaniu strony (bardziej jak javascript / ajax)?
Najzero
Odpowiedzi:
275
Możesz to zrobić za pomocą PHP:
header("Refresh:0");
Odświeża twoją bieżącą stronę, a jeśli chcesz przekierować ją na inną stronę, użyj:
Odświeżanie nie jest oficjalnym nagłówkiem, ale jest obsługiwane przez wiele przeglądarek od czasu Netscape Navigatora. Oznacza to, że będziesz musiał przeprowadzić testy, aby upewnić się, że Twoi odbiorcy korzystają z przeglądarek obsługujących.
Patanjali,
5
Używanie 0 będzie stale obciążać twój serwer i / lub lokalną pamięć podręczną, szczególnie jeśli masz obrazy na stronie. Jeśli potrzebujesz tylko zaktualizować informacje na ekranie, takie jak ceny akcji, ale nie używasz tych informacji w formularzu lub z javascript, być może użyj tagu iframe wskazującego na stronę zawierającą tylko aktualizowane informacje i z opóźnieniem odpowiednim do tego, jak aktualne informacje muszą być.
Nagłówek Yazana („Lokalizacja:”) służy do przekierowania użytkownika na dowolny adres URL, nie można za jego pomocą odświeżyć strony.
Patriks
2
Pratik. Mylisz się. rzeczywiście możesz użyć nagłówka ("refresh:"), aby odświeżyć stronę
131
6
Możesz zrobić jedno i drugie, chociaż wolę nie czekać z:header("Location: ".$_SERVER['PHP_SELF']);
John Magnolia,
4
Uwaga na temat tego rozwiązania: jeśli Twoja witryna implementuje jakiś fajny routing lub przepisywanie adresów URL (tj. Domyślnie prawie każdy framework), może się okazać, że znajdziesz $_SERVER['PHP_SELF']prawdziwą ścieżkę skryptu, a nie rzeczywisty adres URL, który widzisz w przeglądarce. W takim przypadku spróbuj użyć $_SERVER['REQUEST_URI']zamiast tego.
BadHorsie
18
Z pewnością możesz okresowo odświeżać stronę za pomocą PHP:
to będzie się odświeżać co 0 sekund - prawdopodobnie nie to, do czego zmierzasz :)
warren
3
tak, komentuję tę odpowiedź: zawsze jest miejsce na poprawę. I masz rację, możesz ustawić contentrówną dowolną wartość w ciągu kilku sekund - mój komentarz nadal jest wart odnotowania, że odświeżanie 0 sekund prawdopodobnie nie jest tym, do czego zmierzasz :)
warren
2
@Mathlight i ktokolwiek inny narzeka na opóźnione komentarze. Tylko dlatego, że mogłeś przejść dalej, przyszły czytelnik mógł właśnie doświadczyć problemu, a Twoja odpowiedź / komentarz, wraz z wszelkimi opóźnionymi, które go kwestionują, mogą nadal być dla niego istotne.
Patanjali,
1
@Mathlight Nie jestem pewien, dlaczego ludzie myślą, że tylko dlatego, że post jest stary, komentowanie go nie może mieć wartości. Powinieneś pozbyć się tego myślenia.
Mark Kramer
Co masz na myśli, mówiąc „Wbuduj instrukcję if z” ?
Peter Mortensen
2
header('Location: .'); wydaje się, że odświeża stronę w Chrome, Firefox, Edge i Internet Explorer 11.
Tak jak powinno (raz): php.net/manual/en/function.header.php : "Drugim specjalnym przypadkiem jest nagłówek" Location: ". Nie tylko wysyła ten nagłówek z powrotem do przeglądarki, ale także zwraca kod statusu REDIRECT (302) do przeglądarki, chyba że kod statusu 201 lub 3xx został już ustawiony. "
Sz.
Ale nie o to prosił PO. Nadal to głosowałem, bo zdałem sobie sprawę, że dopiero potem przepraszam. Wkrótce święta! :)
Sz.
1
Nie możesz tego zrobić w PHP . Po załadowaniu strony PHP umiera i wymyka się spod kontroli.
Źle, możesz okresowo odświeżać stronę używając PHP, jeśli używasz funkcji nagłówka PHP w ten sposób: header ("refresh: 3;");
131
1
Możesz odświeżyć stronę w PHP za pomocą nagłówka. Ponadto używanie META REFRESH NIE jest idealne dla SEO.
TheCarver
1
Myślę, że to źle, zawsze jest sposób: myślę, że jeśli chce odświeżyć stronę za pomocą php po jakimś czasie, może wysłać żądanie AJAX do strony, która ma odświeżający kod php. ale w ogóle twoja odpowiedź jest dobra
Mohammad Kermani
2
Źle ! Popraw odpowiedź ... Rzeczywiście można to zrobić za pomocą PHP
M_R_K,
1
To jest całkowicie błędne! W każdy możliwy sposób. Można to zrobić przez PHP, przez nagłówki (odświeżanie) i wyzwalane przekierowania. Wydaje się, że wszystkie inne odpowiedzi są lepsze.
Budimir Grom,
1
Możesz odświeżyć za pomocą JavaScript. Zamiast pełnego odświeżania strony możesz odświeżyć zawartość w elemencie div. Następnie za pomocą JavaScript możesz odświeżyć tylko ten konkretny element div i działa to szybciej niż pełne odświeżenie strony.
Hahahah ok, jak sobie życzysz. Sprawdź to => ( błędna domena.epl.fanxt.com ) nie określił, że odświeży stronę „po” jej załadowaniu. Jeśli decyzja o odświeżeniu została podjęta podczas wykonywania kodu php, php z pewnością może odświeżyć się i może wybrać, po ilu sekundach ma zostać odświeżony.
Mohammed Joraid,
@Ahmad, nie możesz uważać go za funkcję PHP, jest to funkcja HTML. Więc w sortowaniu robisz, ustawiając nagłówek odpowiedzi html. Dlatego powiedziałem, że nie da się tego zrobić z PHP. Inna sprawa, nie możesz odświeżyć strony po załadowaniu / gdy jest to potrzebne. tak, możesz ustawić to na kilka sekund lub itd. zgodnie z odpowiedzią.
Patriks
och, szczegóły techniczne. Myślisz, że można użyć nagłówka, aby odświeżyć określony obraz? Dzieje się tak, jeśli przesyłasz obraz strumieniowo przez php grubego.
EZFrag
Naprawdę @EZFrag, nie wiem, czy możesz mi powiedzieć, jak to możliwe?
Patriks
Ach tak, znalazłem to. Na początku wypróbowałem normalny tag obrazu. Brak szczęścia. Ale potem zastąpiłem tag obrazu tagiem iframe i voila. Obraz odświeża się automatycznie. To bardzo pomoże z niektórymi obrazami stanu na stronie :) Dla tych, którzy się zastanawiają, udostępniam obraz przez php wraz z nagłówkiem odświeżania, ustawiając plik php jako źródło iframe.
EZFrag
1
Powtórz metatag w ten sposób:
Adres URL to ten, do którego należy przekierować stronę po odświeżeniu.
Chociaż ten fragment kodu może rozwiązać problem, dołączenie wyjaśnienia naprawdę pomaga poprawić jakość Twojego posta. Pamiętaj, że odpowiadasz na pytanie do czytelników w przyszłości, a osoby te mogą nie znać powodów, dla których zaproponowałeś kod.
DimaSan
Ale nie chodzi o przekierowanie. Chodzi o odświeżenie.
Peter Mortensen,
0
Jedna sztuczka polega na dodaniu losowej liczby na końcu adresu URL. W ten sposób nie musisz za każdym razem zmieniać nazwy pliku. Na przykład:
echo "<img src='temp.jpg?r=3892384947438'>"
Przeglądarka nie zapisze go w pamięci podręcznej, jeśli losowa liczba jest inna, ale serwer sieciowy ją zignoruje.
Odpowiedzi:
Możesz to zrobić za pomocą PHP:
Odświeża twoją bieżącą stronę, a jeśli chcesz przekierować ją na inną stronę, użyj:
źródło
header();
W PHP możesz użyć:
Lub po prostu użyj JavaScript
window.location.reload()
.źródło
header("Location: ".$_SERVER['PHP_SELF']);
$_SERVER['PHP_SELF']
prawdziwą ścieżkę skryptu, a nie rzeczywisty adres URL, który widzisz w przeglądarce. W takim przypadku spróbuj użyć$_SERVER['REQUEST_URI']
zamiast tego.Z pewnością możesz okresowo odświeżać stronę za pomocą PHP:
Spowoduje to odświeżenie strony co trzy sekundy.
źródło
Jest to po prostu możliwe dzięki funkcji header () w PHP:
źródło
Znalazłem dwa sposoby na odświeżenie zawartości PHP:
1. Za pomocą
meta
tagu HTML :2. Korzystanie z częstotliwości odświeżania PHP:
źródło
//Refresh by HTTP META
=>// Refresh by HTML META
również to wygląda na odpowiedź skopiowaną z góry.Oprócz wszystkich sposobów odświeżania strony w PHP, strona zostanie również odświeżona za pomocą następującego metatagu HTML:
Zobacz Odświeżanie meta - „automatycznie odśwież bieżącą stronę internetową lub ramkę po określonym przedziale czasu”
Możesz ustawić czas w
content
wartości.źródło
content
równą dowolną wartość w ciągu kilku sekund - mój komentarz nadal jest wart odnotowania, że odświeżanie 0 sekund prawdopodobnie nie jest tym, do czego zmierzasz :)header('Location: .');
wydaje się, że odświeża stronę w Chrome, Firefox, Edge i Internet Explorer 11.źródło
Nie możesz tego zrobić w PHP . Po załadowaniu strony PHP umiera i wymyka się spod kontroli.
Masz kilka opcji:
<meta http-equiv="refresh" content="5">
Myślę, że metatag odświeżania jest najłatwiejszy i najwygodniejszy.
źródło
Możesz odświeżyć za pomocą JavaScript. Zamiast pełnego odświeżania strony możesz odświeżyć zawartość w elemencie div. Następnie za pomocą JavaScript możesz odświeżyć tylko ten konkretny element div i działa to szybciej niż pełne odświeżenie strony.
źródło
PHP jest językiem po stronie serwera, więc nie możesz odświeżyć strony za pomocą PHP, ale JavaScript jest najlepszą opcją odświeżenia strony:
Metoda reload () wizyty Location Location .
źródło
Powtórz
meta
tag w ten sposób:Adres URL to ten, do którego należy przekierować stronę po odświeżeniu.
źródło
Dodanie tego metatagu w PHP może pomóc:
źródło
Jedna sztuczka polega na dodaniu losowej liczby na końcu adresu URL. W ten sposób nie musisz za każdym razem zmieniać nazwy pliku. Na przykład:
Przeglądarka nie zapisze go w pamięci podręcznej, jeśli losowa liczba jest inna, ale serwer sieciowy ją zignoruje.
źródło