tomaszh
13.01.2008, 19:36:10
Proste pobieranie danych przy pomocy Jquery:
<script type="text/JavaScript"> $(document).ready(function() {
$("#quote").load("script.php");
});
<?php
?>
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
13.01.2008, 22:31:11
A po co datę pobierać Ajaxem?
tomaszh
14.01.2008, 20:38:40
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
14.01.2008, 21:11:40
w pliku script.php
<?php
?>
tomaszh
14.01.2008, 21:15:44
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
14.01.2008, 21:17:50
to dziwne. u mnie dziala - przynajmniej data jest pokazywana aktualna (tzn pobierana z tego pliku php).
moze powiesz jakie tam masz dane? jakies specjalne?
tomaszh
14.01.2008, 21:25:14
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
14.01.2008, 21:48:39
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
14.01.2008, 21:49:42
A masz to-to gdzieś działające?
AxZx
14.01.2008, 22:06:30
to jest na pewno cos z naglowkami:)
<?php
header("Cache-Control: no-cache, must-revalidate"); ?>
dodaj taki naglowek. powinno byc ok.
http://axzx.pl/mam
tomaszh
14.01.2008, 23:03:31
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
14.01.2008, 23:25:09
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
15.01.2008, 09:25:09
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.