niedziela, 28 marca 2010

CACHE IE + AJAX + ODŚWIEŻANIE TREŚCI

Potrzebowałem dzisiaj wyświetlić na stronie aktualny czas, ale nie czas z systemu użytkownika, tylko czas serwera. Myślałem, że sprawa prosta - i jest prosta, ale Internet Explorer postanowił robić figle.
Jeżeli chodzi o samo zastosowanie ajaxa, to nie mam z tym dużego doświadczenia, ale w tym przypadku można sprowadzić problem do kilku linijek wykorzystując bibliotekę prototype.
Kod wygląda tak: Dla wyjaśnienia parametry updatera to:
1. id elementu, którego treść odświeżamy,
2. link do pliku z treścią - w moim przypadku jest tam tylko: echo date("H:i:s");
3. konfiguracja - w tym przypadku: metoda get, częstotliwość co 1s, decay:1 oznacza stałą częstotliwość (wartości >1 oznaczają że im dłuższy czas oczekiwania na odpowiedź tym rzadziej będzie pytał, a mniejsze od 1 odwrotnie szczegóły tutaj).

Wszystko działa pod FireFoxem, ale IE pokazuje ciągle pierwszy wynik, czyli cachuje pierwszy wynik i zegar stoi ;)

ROZWIĄZANIE:
1. zmieniamy GET na POST
2. dopisujemy jakiś parametr do linku, żeby miał co wysłać tym POSTem
Wygląda to tak: Teraz wszystko działa w naszej kochanej przeglądarce.
Może to durne rozwiązanie, ale bardzo krótkie, dlatego uznaję go za dobre, a przede wszystkim skuteczne.

Odświeżanie za pomocą jQuery opisałem tutaj

Brak komentarzy:

Prześlij komentarz

Masz uwagę, sugestię, albo po prostu ochotę - zostaw komentarz