![]() |
![]() ![]() |
![]() |
![]()
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? -------------------- |
|
|
![]()
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
![]() 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
|
|
|
![]()
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.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 07:12 |