![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 18 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam aplikacje wykonującą zapytania AJAXowe za pośrednictwem API aktualnego jQuery. Problem w tym, że część zapytań muszę wykonać z opcją async:false co powoduje wyświetlenie warningu: "Użycie synchronicznej wersji metody XMLHttpRequest w głównym wątku jest przestarzałe z powodu szkodliwych efektów ubocznych. Więcej informacji można znaleźć na stronie http://xhr.spec.whatwg.org" Pytanie: czy tylko w konkretnych przypadkach można jakoś wyłączyć raportowanie warningów z JS (taki odpowiednik PHPowego @) ? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
A jaki jest sens stosowania sync? Blokujesz wykonywanie a i tak pewnie powinieneś doczytać o deferred.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
a w czym CI przeszkadza ten błąd? Bo zakładam że widzisz go w konsoli.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Jeśli używa się Ajaksa synchronicznie, używa się go źle. Kropka.
Wyjaśnij czemu tak robisz a my Ci powiemy, gdzie zrobiłeś błąd ![]() -------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 18 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Uruchomienie procesu AJAXowego (w zasadzie tylko w jednym przypadku-na początku działania aplikacji) pobiera z bazy i przetwarza sporą porcję danych. Chciałem aby był to proces nieprzerywalny. Reszta zadań wykonywanych jest już zgodnie ze sztuką asynchroniczności.
Pyton_000: tak masz rację tylko w konsoli i kontrolkach web developer toolbar (jako informacja a nie błąd); viking: czy masz na myśli - https://api.jquery.com/category/deferred-object/ - nigdy tego nie używałem |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
No to pora zacząć bo całe aktualne jquery jak sam napisałeś bardzo mocno na nim bazuje.
Jak dla mnie nie ma znaczenia czy pobierasz dane w tle. I tak dopoki nie zostaną załadowane przetworzone nie jesteś w stanie ich używać. Po co tutaj blokować przeglądarkę naprawdę nie wiem. -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Tak po prawdzie Deferred w jQuery (a zwłaszcza w jQuery 3.0+) to po prostu Promises, więc znać trzeba.
Asynchroniczne operacje też są "nieprzerywalne". Jak chcesz faktycznie czuć tę nieprzerywalność, to zostaje Ci albo zabawa z generatorami, albo pójście w nowe async/await. Inna rzecz: na ile te dane z bazy są zmienne? Bo może się okazać, że wrzucenie tego do IndexedDB/localStorage pozwoli przyspieszyć apkę. -------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 01:05 |