Synchroniczny AJAX - sprawdzanie czy plik istnieje

0

W mojej aplikacji dochodzi do takiej sytuacji, że trzeba sprawdzić czy plik o danej nazwie istnieje już na serwerze. Jest to część walidacji danych. Muszę poczekać aż AJAX da mi odpowiedź dlatego zastosowałem zapytanie synchroniczne. Jednak obiło mi się o uszy, że nie jest to zalecane. W konsoli też dostaję komunikat:

[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience.

Jak myślicie, wypada użyć synchronicznego AJAX'a czy nie?

1

Nie, nie wypada.

Muszę poczekać aż AJAX da mi odpowiedź dlatego zastosowałem zapytanie synchroniczne.

Jedno z drugim nie ma nic wspólnego. W zaytaniach asynchronicznych też możesz wywołać dalsze akcje po otrzymaniu odpowiedzi. Buduje się tak całe złożone systemy, to podstawa JS.

0

Spoko, wiedziałem o takiej możliwości, ale wymagałoby to w moim wypadku przebudowania nieco aplikacji. Szybciej było użyć wywołania synchronicznego.
Pytanie jeszcze czemu jest to złe?

2

ponieważ jakbyś czekał na odpowiedź AJAXa to reszta aplikacji nie będzie działać i zamulisz całą apkę, przyciski nie będą się wciskać itp.
robiąc asynchronicznie po prostu dajesz rozkaz, żeby pociągnął AJAXa, a jak kiedyś dociągnie to uruchomi się odpowiednia funkcja - a w międzyczasie cała aplikacja może działać, zdarzenia myszy mogą się obsługiwać itp.

zwykle dajesz po prostu callbacki do danej funkcji albo używasz obiektów Promise (jeśli dana funkcja zwraca Promise) i nie jest to problem techniczny, tylko raczej z organizacją kodu.

Spoko, wiedziałem o takiej możliwości, ale wymagałoby to w moim wypadku przebudowania nieco aplikacji.

jest też coś takiego jak async/await w JS, co pozwala programować w JS asynchronicznie tak jak byś programował synchronicznie, ale nie wiem czy to jest dobry pomysł, żeby od tego zaczynać, bo to już wyższy poziom abstrakcji (to i tak korzysta z obiektów Promise pod spodem).

1 użytkowników online, w tym zalogowanych: 0, gości: 1