From Wikipedia, the free encyclopedia
Η Ajax (επίσης AJAX συντομογραφία για "Ασύγχρονη JavaScript και XML")[1] είναι ένα σύνολο από Web development τεχνικές που χρησιμοποιούν πολλές τεχνολογίες του διαδικτύου από την πλευρά του πελάτη για να δημιουργήσουν ασύγχρονες Web εφαρμογές. Με Ajax, οι Web εφαρμογές μπορούν να στέλνουν και να ανακτούν δεδομένα από έναν διακομιστή(server) ασύγχρονα (τρέχοντας στο παρασκήνιο), χωρίς να παρεμβαίνουν στην εμφάνιση και τη συμπεριφορά της υπάρχουσας σελίδας. Με την αποσύνδεση του επιπέδου των δεδομένων που έχουν την δυνατότητα αλλαγής από το επίπεδο παρουσίασης της σελίδας, η Ajax επιτρέπει σε Web σελίδες, και κατ' επέκταση σε Web εφαρμογές, να αλλάζουν το περιεχόμενο τους δυναμικά, χωρίς να χρειάζεται να φορτωθεί εκ νέου ολόκληρη η σελίδα.[2] Στην πράξη, οι σύγχρονες εφαρμογές συνήθως χρησιμοποιούν JSON , αντί για XML, λόγω των πλεονεκτημάτων του JSON που υπάρχουν εκ φυσικού στην JavaScript.[3]
Η 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 αντικείμενο.[4] Το οποίο εμφανίστηκε ως XMLHTTP στη δεύτερη έκδοση της MSXML βιβλιοθήκης,[5] η οποία συνόδευε τον Internet Explorer 5.0 , τον Μάρτιο του 1999.[6]
Η λειτουργικότητα του XMLHTTP ActiveX ελέγχου στον IE 5 αργότερα υλοποιήθηκε από τον Mozilla Firefox, το Safari, το Opera και άλλα προγράμματα περιήγησης, ως το XMLHttpRequest JavaScript αντικείμενο.[7] Η Microsoft υιοθέτησε το μοντέλο του XMLHttpRequest από τον Internet Explorer 7. Η ActiveX έκδοση υποστηρίζεται ακόμη στον Internet Explorer, αλλά όχι στον Microsoft Edge. Η χρησιμότητα αυτών των HTTP αιτήσεων που γίνονται στο προσκήνιο και των ασύγχρονων τεχνολογιών Web παρέμεινε αρκετά ασαφής, μέχρι που άρχισαν να εμφανίζονται σε μεγάλη κλίμακα διαδικτυακές εφαρμογές, όπως το Outlook Web App (2000)[8] και το Oddpost (2002).
Η Google έκανε μια μεγάλη ανάπτυξη των προτύπων-που χρησιμοποιούνταν, όπως η cross browser AJAX με το Gmail (2004) και το Google Maps (2005).[9] τον Οκτώβριο του 2004 το Kayak.coms είχε μια δημόσια beta έκδοση από τις πρώτες μεγάλης κλίμακας e-commerce χρήσεις που εκείνη την εποχή από αυτό που οι προγραμματιστές ονόμαζαν "το xml http πράγμα".[10] Αυτό αύξησε το ενδιαφέρον για την AJAX μεταξύ των προγραμματιστών του διαδικτύου (web developers).
Ο όρος AJAX δημοσίως χρησιμοποιήθηκε στις 18 Φεβρουαρίου 2005, από τον Jesse James Garrett σε ένα άρθρο με τίτλο Ajax: Μια Νέα Προσέγγιση για Web Εφαρμογές, που βασίζεται στις τεχνικές που χρησιμοποιούνται στις σελίδες του Google.[11]
Στις 5 Απριλίου 2006, το World Wide Web Consortium (W3C) κυκλοφόρησε το πρώτο σχέδιο προδιαγραφής για το XMLHttpRequest αντικείμενο, σε μια προσπάθεια να δημιουργήσει ένα επίσημο πρότυπο Web.[12][13] Το πιο πρόσφατο προσχέδιο του XMLHttpRequest αντικειμένου δημοσιεύθηκε στις 30 Ιανουαρίου 2014.[14]
Ο όρος Ajax έχει έρθει να αντιπροσωπεύσει μια ευρεία ομάδα των τεχνολογιών Web που μπορεί να χρησιμοποιηθούν για να φτιάξουν μια Web εφαρμογή που επικοινωνεί με ένα διακομιστή στο παρασκήνιο, χωρίς να παρεμβαίνει με την τρέχουσα κατάσταση της σελίδας. Στο άρθρο που επινοήθηκε ο όρος Ajax, ο Jesse James Garrett εξήγησε ότι οι ακόλουθες τεχνολογίες ενσωματώνονται:
Από τότε, ωστόσο, υπάρχουν μια σειρά από εξελίξεις στις τεχνολογίες που χρησιμοποιούνται σε μια Ajax εφαρμογή, και στον ορισμό του όρου Ajax τον ίδιο. Η XML είναι πλέον απαραίτητη για την ανταλλαγή δεδομένων και, ως εκ τούτου, το XSLT δεν είναι πλέον απαραίτητα για το χειρισμό των δεδομένων. Η JavaScript Object Notation (JSON) χρησιμοποιείται συχνά ως εναλλακτική μορφή για την ανταλλαγή δεδομένων,[15] αν και άλλες μορφές, όπως είναι ήδη διαμορφωμένες HTML ή απλού κειμένο μπορούν επίσης να χρησιμοποιηθούν.[16] Μια ποικιλία από δημοφιλή JavaScript βιβλιοθήκες, συμπεριλαμβανομένων και της JQuery, περιλαμβάνουν αφηρημένες έννοιες για να βοηθήσουν στην εκτέλεση αιτήσεων Ajax.
Οι Ασύγχρονες HTML και HTTP (AHAH) περιλαμβάνουν τη χρήση XMLHTTPRequest για να ανακτήσουν (X)HTML θραύσματα, τα οποία στη συνέχεια εισάγονται απευθείας στην Web σελίδα.
Ένα παράδειγμα από μια απλή Ajax αίτηση χρησιμοποιώντας τη μέθοδο GET, γραμμένη στη JavaScript.
pare-ta dedomena-ajax.js:
send-ajax-data.php:
Σε πολλούς προγραμματιστές δεν αρέσει η σύνταξη που χρησιμοποιείται στο XMLHttpRequest αντικείμενο, για αυτό κάποιες από τις παρακάτω λύσεις έχουν δημιουργηθεί.
Η δημοφιλής βιβλιοθήκη της JavaScript, η jQuery έχει εφαρμόσει αφαιρέσεις που επιτρέπουν στους προγραμματιστές να χρησιμοποιούν την Ajax πιο εύκολα. Αν και εξακολουθεί να χρησιμοποιεί την XMLHttpRequest στο παρασκήνιο, ακολουθεί το ίδιο παράδειγμα όπως παραπάνω, με χρήση της "ajax" μεθόδου.
$.ajax({
type: 'GET',
url: 'send-ajax-data.php',
dataType: "JSON", // data type expected from server
success: function (data) {
console.log(data);
},
error: function(error) {
console.log('Error: ' + error);
}
});
Η jQuery υλοποιεί επίσης μια "πάρει" μέθοδο, η οποία επιτρέπει στον ίδιο τον κώδικα να γραφεί πιο συνοπτικά.
$.get('send-ajax-data.php').done(function(data) {
console.log(data);
}).fail(function(data) {
console.log('Error: ' + data);
});
Το Fetch είναι ένα νέο ήδη υπάρχον JavaScript API. Αν και δεν υποστηρίζεται από όλους τους browsers, κερδίζει γρήγορα έδαφος ως πιο δημοφιλής τρόπος για να εκτελέσει κάποιος μια Ajax αίτηση.[εκκρεμεί παραπομπή] Σύμφωνα με την Google Developers Τεκμηρίωση, η "μεθοδος get το καθιστά ευκολότερο να κάνει κάποιος web αιτήσεις και να λάβει απαντήσεις σε σχέση με το παλαιότερο XMLHttpRequest". Όπως είδαμε παραπάνω, η μεθοδος get βασίζεται πάνω στις JavaScript υποσχέσεις.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.