![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 10.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli poprzez ajaxa nie chcę zmieniać elementów strony, a jedynie zmieniać zawartość jakiejś zmiennej w obiekcie np przechowującej wartości w formacie JSON to czy tylko mogę robić to synchronicznie?
próbowałem robić coś samodzielnie, potem skorzystałem z jQuery i zawsze miałem ten sam problem, że próba przypisania była wcześniej niż koniec wywołania żądania, nawet wtedy gdy akcję umieszałem w onsuccesc czy oncomplete wobec czegoś takiego zmieniłem tym żądania na synchroniczny i problemy się skończyły, ale czy da się zrobić tak, żeby 1)przypisanie było po zakończeniu żadania 2)przy okazji nie blokowało przeglądarki do czasu zakończenia żądania |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Wiec musisz to zrobic w sposob asynchroniczny i w metodzie która jest wywoływana na koniec zadania musisz przypisac wartosci twoim zmiennym.
Nie można wysyłać żadania w sposób synchroniczny i nie blokować przeglądarki. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 10.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
dzięki za odpowiedź
wiem muszę ale jak aby nie pisać zbyt dużo 1)jQuery ma $.ajax, w którym jest complete (czyli gdy żądanie jest zakończone) 2)w complete umieszczam jakąś funkcję w postaci function(){obiekt.pozakonczeniu()) wygląda to tak
3)wywołuję funkcję którą wysłałem - zazwyczaj jest to funkcja która wywołuję metodę dla jakiegoś obiektu function(){obiekt.metoda();} 4)przy wywołaniu asynchronicznym wywoływana funkcja nie jest po zakończeniu żądania - czemu? funkcja wywoływana w complete wygląda tak (właściwie jej prototyp)
jak łatwo się domyśleć przy synchronicznym nie ma alertu (zrobione jest tak że zawsze jest jakiś rezultat) przy asynchronicznym alert jest zawsze czy ma może ktoś pomysł czemu tak jest i jak sobie z tym poradzić żeby było asynchronicznie i dobrze, czyli żeby się ten alert nie pojawiał |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 14:19 |