Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] Odswiezanie zawartosci (nie strony) w FF
Luciano
post 5.09.2007, 09:12:33
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 1
Dołączył: 26.07.2006
Skąd: Londyn

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


Witam wszystkich!

Zauwazylem dziwne zachowanie FireFoxa, ktore nie bardzo wiem jak obejsc. Na stronie mam pewien dynamiczny element, ktory wysyla i pobiera dane za pomoca AJAXa (AJAXu? ;> ). Wszystko bylo dobrze do puki nie stwierdzilem, ze nieco glupio dawac userowi dostep do tego dynamicznego elementu podczasz trwania wywolania AJAX. Najprosciej wiec do czasu otrzymania odpowiedzi z servera zaslonic dynamiczny element pol przezroczysta warstwa.
Tak wiec zrobilem. W IE dziala to jak powinno natomiast w FF nic sie nie dzieje w sensie nie widac tej warstwy. Wyglada to mniej wiecej tak.

funkcja ktorawolaAJAX(){
wyswietl_zaslone();
funcja odpowiedzajaxu(){
schowaj_zaslone();
}
wywolaj_ajax();
}

Okazalo sie, ze jesli bede prubowal zrobic cokolwiek w tej funkcji nie tylko wyswietlac swoja zaslonke ale nawet proste operacje jak np. zmiana koloru tla itd wciaz nie beda one widoczne w FireFoxie. Ciekawostka jest ze jesli np. w polowie tej funkcji wstawie alerta zobacze swoja zaslonke czy jakie kolwiek inne zmiany elementu strony.
Mam przeczucie ze jesli w jednej funkcji zarzadam zmian na stronie FireFox odklada je na pozniej (az do wyjscia z funkcji) jedynie mozna go wyrwac z marazmu alertem. Jesli wiec tak jak tutaj w jednej funkcji cos przyslaniam a pozniej odslaniam z poziomu tej samej funkcji efekt jest taki ze FF udaje jakby nic sie nie stalo. Prubowalem to obejsc na rozne sposoby, wywolywac funkcje z timeoutem itd wciaz dupa. Czy mozna jakos zmusic FF do odswiezenia plutna? czy moze takie rzeczy robi sie w inny sposob?


--------------------
Go to the top of the page
+Quote Post
zbig
post 5.09.2007, 18:56:53
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

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


Nie bardzo rozumiem jak ma dzialac twoja funkcja, ale przede wszystkim pamietaj ze ajax dziala asynchronicznie i wywolywanie funkcji po uruchomieniu ajaxa nie daje ci absolutnie pewnosci ze poczeka on na opdowiedz z serwera. Najprawdopodobniej startujesz swoja zaslone uruchamiasz ajaxa i usuwasz zaslone majac nadzieje ze usuwanie zaslony bedzie czekac smile.gif.

Przykladowy kod ktory powinien poradzic sobie z tym problemikiem :
Kod
new Ajax.Request(url, {
    method: 'get',
    onLoading: function() {
        tutaj_zaslaniasz();
    }
    onSuccess: function(transport) {
        tutaj_odslaniasz();
  }
});


To akurat prototype ale zasada jest zawsze taka sama


--------------------
Flash Flex PHP JAVA RED5 http://www.easyweb24.net
Go to the top of the page
+Quote Post
Luciano
post 5.09.2007, 22:28:58
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 1
Dołączył: 26.07.2006
Skąd: Londyn

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


Bez obaw, doskonale wiem jak dziala AJAX. Wyraznie napisalem ze w IE dziala tlyko w FF nie dziala. AJAX jest tylko w kontekscie mojej aplikacji i sam w sobie nie ma tu nic do rzeczy.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 07:12