AJAX, που σημαίνει ασύγχρονη JavaScript και XML, είναι μια τεχνική που επιτρέπει στις ιστοσελίδες να ενημερώνονται ασύγχρονα, πράγμα που σημαίνει ότι το πρόγραμμα περιήγησης δεν χρειάζεται να φορτώσει ξανά ολόκληρη τη σελίδα όταν άλλαξε μόνο ένα μικρό κομμάτι δεδομένων στη σελίδα. Το AJAX μεταβιβάζει μόνο τις ενημερωμένες πληροφορίες προς και από το διακομιστή.
Οι τυπικές εφαρμογές ιστού επεξεργάζονται τις αλληλεπιδράσεις μεταξύ των επισκεπτών του ιστού και του διακομιστή συγχρόνως. Αυτό σημαίνει ότι ένα πράγμα συμβαίνει μετά το άλλο. ο διακομιστής δεν έχει πολλαπλούς στόχους. Εάν κάνετε κλικ σε ένα κουμπί, το μήνυμα αποστέλλεται στον διακομιστή και η απάντηση επιστρέφεται. Δεν μπορείτε να αλληλεπιδράσετε με άλλα στοιχεία σελίδας μέχρι να ληφθεί η απάντηση και να ενημερωθεί η σελίδα.
Προφανώς, αυτή η καθυστέρηση μπορεί να επηρεάσει αρνητικά την εμπειρία ενός επισκέπτη του ιστού - επομένως, AJAX.
Τι είναι το AJAX;
Το AJAX δεν είναι μια γλώσσα προγραμματισμού, αλλά μια τεχνική που ενσωματώνει μια δέσμη ενεργειών πελάτη (δηλαδή μια δέσμη ενεργειών που εκτελείται σε ένα πρόγραμμα περιήγησης χρήστη) που επικοινωνεί με έναν διακομιστή ιστού. Επιπλέον, το όνομά του είναι κάπως παραπλανητικό: ενώ μια εφαρμογή AJAX μπορεί να χρησιμοποιεί XML για την αποστολή δεδομένων, θα μπορούσε επίσης να χρησιμοποιήσει απλά κείμενο ή κείμενο JSON. Αλλά γενικά, χρησιμοποιεί ένα αντικείμενο XMLHttpRequest στο πρόγραμμα περιήγησής σας για να ζητήσει δεδομένα από το διακομιστή και τη JavaScript για την εμφάνιση των δεδομένων.
AJAX: Σύγχρονη ή ασύγχρονη
Το AJAX μπορεί να έχει πρόσβαση στον διακομιστή ταυτόχρονα και ασύγχρονα:
- Συγχρόνως, στο οποίο το σενάριο σταματά και περιμένει τον διακομιστή να στείλει μια απάντηση πριν συνεχίσει.
- Ασύγχρονα, στο οποίο το σενάριο επιτρέπει στη σελίδα να συνεχίσει να επεξεργάζεται και να χειρίζεται την απάντηση αν και πότε φθάνει.
Επεξεργασία της αίτησής σας συγχρόνως είναι παρόμοια με την επαναφόρτωση της σελίδας, αλλά μόνο οι απαιτούμενες πληροφορίες μεταφορτώνονται αντί ολόκληρης της σελίδας. Επομένως, η χρήση του AJAX συγχρονικά είναι ταχύτερη από ό, τι δεν το χρησιμοποιείτε καθόλου - αλλά απαιτεί ακόμα ο επισκέπτης σας να περιμένει την πραγματοποίηση της λήψης πριν προχωρήσει οποιαδήποτε περαιτέρω αλληλεπίδραση με τη σελίδα. Οι άνθρωποι γνωρίζουν ότι μερικές φορές πρέπει να περιμένουν να φορτωθεί μια σελίδα, αλλά οι περισσότεροι λαοί δεν χρησιμοποιούνται για συνεχιζόμενες σημαντικές καθυστερήσεις αφού βρίσκονται σε έναν ιστότοπο.
Επεξεργασία της αίτησής σας ασύγχρονα αποφεύγει την καθυστέρηση ενώ λαμβάνει χώρα η ανάκτηση από το διακομιστή επειδή ο επισκέπτης μπορεί να συνεχίσει να αλληλεπιδρά με την ιστοσελίδα. οι ζητούμενες πληροφορίες θα υποβληθούν σε επεξεργασία στο παρασκήνιο και η απάντηση θα ενημερώσει τη σελίδα όσο και αν φτάνει. Περαιτέρω, ακόμα και αν η απάντηση καθυστερήσει - για παράδειγμα, στην περίπτωση πολύ μεγάλων δεδομένων - οι επισκέπτες της ιστοσελίδας μπορεί να μην το συνειδητοποιούν επειδή είναι κατειλημμένοι αλλού στη σελίδα.
Ως εκ τούτου, ο προτιμώμενος τρόπος χρήσης του AJAX είναι η χρήση ασύγχρονων κλήσεων όπου είναι δυνατόν. Αυτή είναι η προεπιλεγμένη ρύθμιση στο AJAX.
Γιατί να χρησιμοποιήσετε Σύγχρονη AJAX;
Εάν οι ασύγχρονες κλήσεις παρέχουν μια τέτοια βελτιωμένη εμπειρία χρήστη, γιατί προσφέρει το AJAX έναν τρόπο να κάνει τέτοιες σύγχρονες κλήσεις;
Ενώ οι ασύγχρονες κλήσεις είναι η καλύτερη επιλογή στη συντριπτική πλειοψηφία του χρόνου, υπάρχουν σπάνιες καταστάσεις στις οποίες δεν συμβαίνει έχει νόημα να επιτρέπετε στον επισκέπτη σας να συνεχίσει να αλληλεπιδρά με την ιστοσελίδα μέχρι κάποια συγκεκριμένη διαδικασία διακομιστή ολοκληρώνει.
Σε πολλές από αυτές τις περιπτώσεις, ίσως είναι καλύτερο να μην χρησιμοποιείτε καθόλου το AJAX και αντ 'αυτού απλώς επανατοποθετήστε ολόκληρη τη σελίδα. Η συγχρονική επιλογή στο AJAX υπάρχει για τον μικρό αριθμό καταστάσεων στις οποίες δεν μπορείτε να χρησιμοποιήσετε ασύγχρονη κλήση αλλά η επαναφόρτωση ολόκληρης της σελίδας δεν είναι απαραίτητη. Για παράδειγμα, μπορεί να χρειαστεί να χειριστείτε κάποια επεξεργασία συναλλαγών στην οποία η παραγγελία είναι σημαντική. Εξετάστε μια περίπτωση κατά την οποία μια ιστοσελίδα πρέπει να επιστρέψει μια σελίδα επιβεβαίωσης αφού ο χρήστης έκανε κλικ σε κάτι. Αυτή η εργασία απαιτεί συγχρονισμό των αιτημάτων.