Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][JavaScript]Odświerzanie
aras785
post
Post #1





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Witam. Zrobiłem odświeżanie strony z panelu admina. Klikam przeladuj i przeladowuje strone wszystkim co sa na stronie. Działa to tak, że zapisuje na innym serwerze godzine przeładowania i generuja nowa strone (zmienia tylko czas do porowania) i js sprawdza czy strona ma taki sam czas, jesli nie to przeladowuje.

Pokaze na przykladzie:

[JAVASCRIPT] pobierz, plaintext
  1. function sprawdz() {
  2. jQuery.getScript('http://s2.domena.pl/czas_3.js', function()
  3. {
  4. old = old();
  5. now = 1360049560; //czas ostatniego przeladowania
  6. if(old!=now) {
  7. window.location = location.href;
  8. }
  9. });
  10. }
  11. window.setInterval(sprawdz,7000);
[JAVASCRIPT] pobierz, plaintext


I to wszystko działa ale czasami odświeża cały czas. Nie wczytuje aktualnej godziny. Musze wejsc odswieżyć sobie strone i dopiero wtedy wczyta dobrze. Cache chyba... jak mozna to rozwiązać inaczej? Pozdrawiam
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. jQuery.getScript('http://s2.domena.pl/czas_3.js?r='+Math.random(), function() // dalszy kod ...
[JAVASCRIPT] pobierz, plaintext


Ten post edytował Sephirus 5.02.2013, 08:50:32
Go to the top of the page
+Quote Post
aras785
post
Post #3





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Dzięki ale to nie to niestety bo sprawdzałem wczoraj.

U mnie wygląda to tak.

Mam stronę, a w niej iframe i w tym iframe jest właśnie strona, która się odświeża i w/w skrypt js.

Czasami po odświeżenie zawartość ramki dalej pokazuje stary czas, który jest podany w zmiennej: var now.

Go to the top of the page
+Quote Post
Sephirus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Rozumiem, że ten czas generowany jest z PHP i wrzucany do JS?

Czyli podejrzewasz, że cacheowane jest to co w ramce całe i stąd ten czas się nie zmienia?

Może spróbuj tej samej techniki. Gdy odświeżasz tą ramkę dodaj jakiegoś randomowego GETa do adresu.

(nie wiem czy dobrze rozumiem)
Go to the top of the page
+Quote Post
aras785
post
Post #5





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Dobrze myślisz.

Tak php generuje kod html (tworzy go) i tam wpisuje czas i drugi czas idzie na drugi serwer.

To w takim razie musiałbym zrobić ramke w ramce

czyli:

index -> ramka (if frame src=wlasciwa_ramka.html?1231231) -> wlasciwa ramka

I to by zadziałało?
Go to the top of the page
+Quote Post
Sephirus
post
Post #6





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Poczekaj poczekaj jest łatwiejsze wyjście (IMG:style_emoticons/default/smile.gif) Już piszę...

EDIT:

Ten kod powinien wystarczyć o ile nie masz w tym adresie iframe'a żadnych zmiennych GET, jesli masz trzeba pokombinować. Ale ogólnie wystarczy nie odświeżać dosłownie a ładować z innym GETem (IMG:style_emoticons/default/wink.gif)

[JAVASCRIPT] pobierz, plaintext
  1. function sprawdz() {
  2. jQuery.getScript('http://s2.domena.pl/czas_3.js', function()
  3. {
  4. old = old();
  5. now = 1360049560; //czas ostatniego przeladowania
  6. if(old!=now) {
  7. var url = window.location.href;
  8. url = url.split('?')[0] + '?r='+Math.random();
  9. window.location = url;
  10. }
  11. });
  12. }
  13. window.setInterval(sprawdz,7000);
[JAVASCRIPT] pobierz, plaintext


Ten post edytował Sephirus 5.02.2013, 09:40:30
Go to the top of the page
+Quote Post
aras785
post
Post #7





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Dziękuje mistrzu świata. Sprawdzę będąc w domu bo teraz w robocie siedzę.

Wprowadziłem w/w skrypt i wszystko działa (chyba) jak należy. Dzięki
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 00:41