מה זה AJAX
בעולם הווב, כשאומרים "AJAX" הכוונה היא לבקשת שרת ותגובת שרת מסוג AJAX, אבל לפעמים הכוונה היא גם לשיטות בקשה-תגובה דומות.
ובכן, בהגדרה מדויקת, AJAX זו בקשת שרת ותגובת שרת שמתרחשות כל אחת אסינכרונית בהתאם למבנה דפדפן ווב[1] ומאפשרת להשיג תוכן מבסיס נתונים בדף מבלי לטעון מחדש את הדף בצורה רגילה או "מלאה".
המונח AJAX הוא ראשי תיבות של "Asynchronous JavaScript and XML" .
שפת XML היא שפת מבנה הדומה במהותה לשפת HTML ומבנה המוגדר עימה מכיל את מידע הבקשה.
כיום במקום בשפת XML, נהוג להשתמש בשפת JSON כך שלמעשה כיום רוב הבקשות שמוגדרות AJAX הן לא באמת AJAX אלא AJAJ.
שפת JSON היא אמנם לא שפת מבנה כמו שפת המבנה XML או שפת המבנה HTML אבל היא בכל זאת שפת סיריאליזציה (קונספט מאד דומה לקונספט של שפת מבנה) וגם עם שפות סיריאליזציה ניתן ליצור מבני מידע בדגש על סיריאליזציה (serialzation), כלומר, בדגש על ארגון מידע בצורה סדורה לפי מבנים מזוהים ובעיקר בצורה ספציפית של השפה הספציפית.
אם אנחנו רוצים לאפשר בקשה-תגובה מסוג AJAX, ניתן לעשות זאת בכמה שיטות, למשל בשיטת XMLHttpRequest אבל גם בשיטת fetch API.
טעינת קובץ עם AJAX בשיטת XMLHttpRequest
ניתן לבצע טעינת קובץ עם AJAX כזו עם תבנית הקוד להלן:
<html> <head> <script> var content = document.querySelector("#appendment_area"); var ajax = new XMLHttpRequest(); ajax.open("GET", "html/contact_form.html", false); ajax.send(); content.innerHTML += ajax.responseText; </script> </head> </html>
הביטוי false שם פירושו ביטול של התנהגות ברירת מחדל של תגובה אסינכרונית לצורך תגובה סינכרונית.
אם טרם למדת על המונחים אסינכרוני וסינכרוני במחשבים, אפשר להתעלם מהערה זו.
חלופות ל Ajax במקרים מסוימים
מעניין לציין כהערת אגב שניתן גם להגיש בקשה הדומה בהתנהגותה לבקשת AJAX (אך איננה בקשת AJAX) דרך HTML כמו עם תג iframe
או עם אלמנט שיש לו src attribute ויגרום לקריאה לשרת.
דרכים נוספות תלויות באם נרצה לקבל תגובה או לא כי אז יש עוד דרכים כמו Beacon ו-Ping; ב Beacon API למשל אין ציפייה לתגובה.
הערות כלליות
- המונח במונח AJAJ מחליפים את ה X ב J וזאת בכדיי לייצג את JSON
הערות ספציפיות
- לא כל דפדפן ווב בהכרח יאפשר בקשת בקשות Ajax