Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JQuery] Problem z odświeżaniem
Forum PHP.pl > Forum > XML, AJAX
tomaszh
Proste pobieranie danych przy pomocy Jquery:
  1. <script type="text/JavaScript">
  2. $(document).ready(function() {
  3. $("#quote").load("script.php");
  4. });
  5. </head>
  6. <div id="quote"></div>
  7. </body>

  1. <?php
  2. echo date("H:i:s");
  3. ?>

Problem w tym że podczas odświeżania strony w IE nie pobiera aktualnej daty. Trzyma w pamięci pierwszą pobraną datę. Problemu nie ma w FF. Z biblioteką Advajax nie było z tym problemu ale chciałem przerobić na Jquery. Czy wiecie o co tu chodzi?
gekon
A po co datę pobierać Ajaxem?
tomaszh
to już nawet nie chodzi o datę ale o wszelkie inne generowane dane, które chce pobrać za pomocą jquery. Raz pobrane dane do jednego diva już zapamiętuje i nie chce nadpisywać. Mam skrypcik który co 10 sekund pobiera dane i je nadpisuje? Niestety w jquery to nie działa ale tylko pod IE. Czy ktoś ma jakiś pomysł aby podmienić dane w divie? Sprawdzcie czy powyższy kod działa u was poprawnie. Odświeżenie przeglądarki też nic nie daje. W czym może być problem?
AxZx
w pliku script.php
  1. <?php
  2. header("Last-Modified: ".date("r")." GMT");
  3. echo date("H:i:s");
  4. ?>
tomaszh
niestety nie pomogło, ale chyba nie w tym kierunku trzeba szukać, to nie tylko kwestia daty ale też innych danych które raz "wrzucone" do diva, są już nie do zmiany.
AxZx
to dziwne. u mnie dziala - przynajmniej data jest pokazywana aktualna (tzn pobierana z tego pliku php).
moze powiesz jakie tam masz dane? jakies specjalne?smile.gif
tomaszh
ale za każdym razem jak odświeżasz stronke jest pobierana aktualne data? Może to kwestia ustawień w IE? Jeśli chodzi o dane to są to informacje o pogodzie, które dość często są uaktualniane(co kilkadziesiąt sekund). Ogólnie dziwna sprawa, wiele dobrego słyszałem o Jquery i dlatego przesiadam się na tą bibliotekę a tu już na początku takie problemy.
AxZx
nie wiem czego to kwestia
testowalem na najnowszym FF z serii 2, IE6 i Operze 2,5

klikam F5 zmienia sie data.
jest jeszcze mooTools. ja sie do jQuery juz przyzwyczailem:)
gekon
A masz to-to gdzieś działające?
AxZx
to jest na pewno cos z naglowkami:)

  1. <?php
  2. header("Cache-Control: no-cache, must-revalidate");
  3. ?>


dodaj taki naglowek. powinno byc ok.

http://axzx.pl/mam
tomaszh
super, wielkie dzięki AxZx, teraz działa, nie tylko data, ale również pozostałe dane podmienia prawidłowo. Gdyby nie udało się rozwiązać tego problemu to nie mógłbym wykonać np. stronicowania danych w jquery tak jak to zrobił anakin w advajax: stronicowanie danych. Ale teraz już wszystko ok.

PS. Zastanawia mnie tylko jedno, dlaczego pod advajax działało bez problemu pod IE, a tam nie miałem w kodzie php żadnego wpisu z nagłówkiem. Ciekawe.
AxZx
moze jest cos w tym ze jQuery ma takie metody:
Kod
$("#feeds").loadIfModified("feeds.html");
$("#feeds").load("feeds.html");


ta pierwsza dziala pod IE tak jak ty chcesz, za to pod FF nie dziala.
ta druga na odwrot - trzeba zastosowac trick z tym naglowkiem.
tomaszh
dzisiaj sprawdzałem pod IE 6.0 i niestety nie pobiera danych ani daty. Czy jest może jakiś inny zapis nagłówka dla IE 6.0? Trochę dziwnie rozwiązali to w jquery, skoro to biblioteka to powinni przewidzieć takie sytuacje.
Czy możesz mi napisać dokładnie jaki masz nagłówek w skrypcie php, który podałeś powyżej w linku? W IE 6.0 twój skrypcki działa, niestety u mnie nie chodzi? Czy masz coś więcej w nagłówku niż to co podałeś?

Problem rozwiązany, wstawiłem wszystkie możliwe nagłówki, czyli:
header("Last-Modified: ".gmdate('d M Y H:i:s'). " GMT");
header("Pragma: no-cache;");
header("Cache-Control: pre-check=0, post-check=0, max-age=0");
header("Cache-Control: no-store, no-cache, must-revalidate, max_age=0");
header("Expires: 0");
i działa również pod IE 6.0.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.