Anonim

Από προεπιλογή, το αίτημα $ .ax στο jQuery έχει οριστεί σε ασύγχρονη. Το όνομα της μεταβλητής είναι async και η τιμή έχει οριστεί σε true. Αυτό μου έδωσε μια μικρή σύγχυση και όταν μάθω για πρώτη φορά, γι 'αυτό ας το ξεπεράσουμε.

Ασύγχρονη έναντι σύγχρονης

Η προεπιλεγμένη ρύθμιση στο jQuery. Από την εμπειρία μου, ο ασύγχρονος θα πρέπει σχεδόν πάντα να κάνει το τέχνασμα. Υπάρχουν επίσης και 2 καταστάσεις που δεν επιτρέπουν καν την πραγματοποίηση μιας σύγχρονης κλήσης.

  • Αιτήσεις μεταξύ τομέων. Αν κάνω μια αίτηση ajax από την techjunkie.com σε ένα αρχείο στο whereever.com (ένα εντελώς διαφορετικό τομέα), αυτό θα ήταν ένα αίτημα cross domain.
  • jsonp - Εάν θέλετε να ανακτήσετε cross-domain δεδομένα JSON, το JSONP είναι αυτό που ψάχνετε.

Πότε να χρησιμοποιείτε Σύγχρονη λειτουργία

Θα πρέπει πρώτα να γνωρίζετε ότι η ρύθμιση async to false παγώνει το πρόγραμμα περιήγησης. Το κλειδώνει εντελώς. Όχι μόνο η σελίδα σας, αλλά κάθε σελίδα που ο χρήστης μπορεί να έχει ανοικτή. Για παράδειγμα, εάν ο διακομιστής σας επιβραδύνει το μέσο αίτημα, έχετε απενεργοποιήσει αποτελεσματικά τον περιηγητή σας, μέχρι ο διακομιστής σας να έχει την ευκαιρία να καλύψει τα δεδομένα που χρειάζονται.

Αντί να το διακινδυνεύσετε με μια σύγχρονη κλήση, απλά καθορίστε μια λειτουργία επανάκλησης για επιτυχία ή σφάλμα. Θα φτάσετε στο ίδιο τελικό σημείο χωρίς ενδεχομένως να καταστρέψετε την εμπειρία περιήγησης του χρήστη. Εν ολίγοις, μην χρησιμοποιείτε σύγχρονη κλήση. Είναι κακό για την εφαρμογή σας και το UX.

Διαφορά μεταξύ συγχρονισμένης και ασύγχρονης σε ajax