Anonim

Domyślnie żądanie $ .ajax w jQuery jest ustawione na asynchroniczne. Nazwa zmiennej to asynchroniczna, a wartość jest ustawiona na true. To sprawiło mi trochę zamieszania, kiedy po raz pierwszy się o tym dowiedziałem, więc przejdźmy do tego.

Asynchroniczny vs. Synchroniczny

Ustawienie domyślne w jQuery. Z mojego doświadczenia wynika, że ​​Asynchronous prawie zawsze powinien załatwić sprawę. W szczególności istnieją również 2 sytuacje, które nawet nie pozwalają na połączenie synchroniczne.

  • Żądania między domenami. Jeśli wykonuję żądanie ajax z techjunkie.com do pliku na whereever.com (zupełnie innej domenie), byłoby to żądanie między domenami.
  • jsonp - Jeśli chcesz odzyskać dane JSON między domenami, JSONP jest tym, czego szukasz.

Kiedy używać synchronicznego

Najpierw powinieneś mieć świadomość, że ustawienie asynchronizacji na fałsz powoduje zawieszenie przeglądarki. Całkowicie to blokuje. Nie tylko twoja strona, ale każda strona, którą użytkownik może otworzyć. Na przykład, jeśli Twój serwer zwolni w połowie żądania, skutecznie wyłączyłeś jego przeglądarkę, dopóki serwer nie będzie w stanie złapać i przekazać potrzebnych danych.

Zamiast ryzykować to wywołaniem synchronicznym, po prostu określ funkcję wywołania zwrotnego w przypadku powodzenia lub błędu. Dochodzisz do tego samego punktu końcowego, nie rujnując przeglądania Internetu przez użytkownika. Krótko mówiąc, nie używaj połączenia synchronicznego. Jest zły dla twojej aplikacji i UX.

Różnica między synchronicznym a asynchronicznym w ajax