Ajax (προγραμματισμός)

Η Ajax (επίσης AJAX σύντομογραφία για "Ασύγχρονη JavaScript και XML") είναι ένα σύνολο από Web development τεχνικές που χρησιμοποιούν πολλές τεχνολογίες του διαδικτύου απο την πλευρά του πελάτη για να δημιουργήσουν ασύγχρονες Web εφαρμογές. Με Ajax, οι Web εφαρμογές μπορούν να στέλνουν και να ανακτούν δεδομένα από έναν διακομιστή(server) ασύγχρονα (τρέχοντας στο παρασκήνιο), χωρίς να παρεμβαίνουν στην εμφάνιση και τη συμπεριφορά της υπάρχουσας σελίδας. Με την αποσύνδεση του επιπέδου των δεδομένων που έχουν την δυνατότητα αλλαγής από το επίπεδο παρουσίασης της σελίδας, η Ajax επιτρέπει σε Web σελίδες, και κατ ' επέκταση σε Web εφαρμογές, να αλλάζουν το περιεχόμενο τους δυναμικά, χωρίς να χρειάζεται να φορτωθεί εκ νέου ολόκληρη η σελίδα. Στην πράξη,οι σύγχρονες εφαρμογές συνήθως χρησιμοποιούν JSON , αντί για XML, λόγω των  πλεονεκτημάτων του JSON που υπάρχουν εκ φυσικού στην JavaScript.
Η Ajax δεν είναι μια ενιαία τεχνολογία, αλλά μάλλον μια ομάδα τεχνολογιών. Η HTML και η CSS μπορεί να χρησιμοποιηθούν σε συνδυασμό για να επισημάνουν και να δωσουν ειδικό στυλ στις πληροφορίες. Η ιστοσελίδα μπορεί στη συνέχεια να τροποποιηθεί με την JavaScript για εμφανίζει δυναμικά – και να επιτρέπει στο χρήστη να αλληλεπιδρά με τα νέα στοιχεία. Το ενσωματωμένο XMLHttpRequest αντικείμενο εντός της JavaScript χρησιμοποιείται συνήθως για να εκτελέσει την Ajax στις ιστοσελίδες επιτρέποντας σε ιστοσελίδες να φορτώσουν το περιεχόμενο τους πάνω στην οθόνη, χωρίς να ανανεώσουν τη σελίδα. Η Ajax δεν είναι μια νέα τεχνολογία, ή κάποια διαφορετική γλώσσα, αλλά υπάρχουσες τεχνολογίες που χρησιμοποιούνται με νέους τρόπους.

Ιστορία

Στις αρχές με τα μέσα της δεκαετίας του 1990, οι περισσότερες Web ιστοσελίδες βασίζονται σε πλήρεις HTML κωδικα σελίδες. Κάθε ενέργεια του χρήστη απαιτεί μια εντελώς νέα σελίδα να φορτωθεί από τον διακομιστή. Αυτή η διαδικασία ήταν αναποτελεσματική, όπως φαίνεται και από την εμπειρία του χρήστη: όλο το περιεχόμενο της σελίδας που εξαφανίστηκε και, στη συνέχεια, η νέα σελίδα που εμφανίστηκε ξανα. Κάθε φορά που το πρόγραμμα περιήγησης φορτωνε ξανα μια σελίδα, επειδή υπηρχε μια μικρή αλλαγή, όλο το περιεχόμενο έπρεπε να σταλεί εκ νέου, παρόλο που μόνο μερικές από τις πληροφορίες είχαν αλλάξει. Αυτό τοποθετούσε επιπλέον φορτο στον server και έκανε το εύρος ζώνης να είναι ένας περιοριστικός παράγοντας στις επιδόσεις.
Το 1996, το iframe tag εισήχθη από τον Internet Explorer, ως το αντικείμενο στοιχείο, που μπορεί να φορτώσει ή να φέρει το περιεχόμενο της σελίδας ασύγχρονα. Το 1998, το Microsoft Outlook Web App, και η ομάδα του ανέπτυξε το concept πίσω από το XMLHttpRequest scripting αντικείμενο. Το οποιο εμφανίστηκε ως XMLHTTP στη δεύτερη έκδοση της MSXML βιβλιοθήκης, η οποία συνοδεύε τον Internet Explorer 5.0 , τον Μάρτιο του 1999.
Η λειτουργικότητα του XMLHTTP ActiveX ελέγχου στον IE 5 αργότερα υλοποιήθηκε από τον Mozilla, το Safari, το Opera και άλλα προγράμματα περιήγησης, ως το XMLHttpRequest JavaScript αντικείμενο. Η Microsoft υιοθέτησε το μοντελο του XMLHttpRequest απο τον Internet Explorer 7. Η ActiveX έκδοση υποστηρίζεται ακόμη στον Internet Explorer, αλλά όχι στον Microsoft Edge. Η χρησιμότητα αυτών των HTTP αιτήσεων που γίνονται στο προσκήνιο και των ασύγχρονων τεχνολογιών Web παρέμεινε αρκετά ασαφής, μέχρι που άρχισαν να εμφανίζονται σε μεγάλη κλίμακα διαδικτυακές εφαρμογές, όπως το Outlook Web App (2000) και το Oddpost (2002).
Η Google έκανε μια μεγάλη ανάπτυξη των προτύπων-που χρησιμοποιούνταν, όπως η cross browser Ajax με το Gmail (2004) και το Google Maps (2005). τον Οκτώβριο του 2004 το Kayak.coms είχε μια δημόσια beta έκδοση από τις πρώτες μεγάλης κλίμακας e-commerce χρήσεις που εκείνη την εποχή από αυτό που οι προγραμματιστές ονόμαζαν "το xml http πράγμα". Αυτό αύξησε το ενδιαφέρον για την AJAX μεταξύ των προγραμματιστών του διαδικτύου (web developers).
Ο όρος Ajax δημοσίως χρησιμοποιήθηκε στις 18 Φεβρουαρίου 2005, από τον Jesse James Garrett σε ένα άρθρο με τίτλο Ajax: Μια Νέα Προσέγγιση για Web Εφαρμογές, που βασίζεται στις τεχνικές που χρησιμοποιούνται στις σελίδες του Google.
Στις 5 απριλίου 2006, το World Wide Web Consortium (W3C) κυκλοφόρησε το πρώτο σχέδιο προδιαγραφής για το XMLHttpRequest αντικείμενο, σε μια προσπάθεια να δημιουργήσει ένα επίσημο πρότυπο Web. Το πιο πρόσφατο προσχέδιο του XMLHttpRequest αντικειμένου δημοσιεύθηκε στις 30 Ιανουαρίου 2014.

JavaScript παράδειγμα

Ένα παράδειγμα από μια απλή Ajax αίτηση χρησιμοποιώντας τη μεθοδο ΠΆΡΕ, γραμμένη στη JavaScript.

pare-ta dedomena-ajax.js:
send-ajax-data.php:
Σε πολλούς προγραμματιστές δεν τους αρέσει η σύνταξη που χρησιμοποιείται στο XMLHttpRequest αντικείμενο, για αυτό κάποιες από τις παρακάτω λύσεις έχουν δημιουργηθεί.

jQuery παράδειγμα

Η δημοφιλής βιβλιοθήκη της JavaScript, η jQuery έχει εφαρμόσει αφαιρέσεις που επιτρέπουν στους προγραμματιστές να χρησιμοποιούν την Ajax πιο εύκολα. Αν και εξακολουθεί να χρησιμοποιεί την XMLHttpRequest πίσω από τις σκηνές, ακολουθεί το ίδιο παράδειγμα όπως παραπάνω, με χρήση της "ajax" μέθοδου.
Η jQuery υλοποιεί επίσης μια "πάρει" μέθοδο, η οποία επιτρέπει στον ίδιο τον κώδικα να γραφεί πιο συνοπτικά.

Fetch (φέρε) παράδειγμα

Το Fetch είναι ένα νέο ήδη υπάρχον JavaScript API. Αν και δεν υποστηρίζεται από όλους τους browsers, κερδίζει γρήγορα έδαφος ως πιο δημοφιλής τρόπος για να εκτελέσει κάποιος μια Ajax αίτηση. Σύμφωνα με την Google Developers Τεκμηρίωση, η "Φέρε μεθοδος το καθιστά ευκολότερο να κάνει κάποιος web αιτήσεις και να λάβει απαντήσεις σε σχέση με το παλαιότερο XMLHttpRequest". Όπως είδαμε παραπάνω, η φέρε μεθοδος βασίζεται πάνω στις JavaScript υποσχέσεις.