AJAX, העומד באסינכרוני JavaScript ו- XML, היא טכניקה המאפשרת לעדכן את דפי האינטרנט באופן אסינכרוני, מה שאומר שהדפדפן לא צריך לטעון מחדש את כל הדף כאשר רק מעט נתונים קטנים בעמוד השתנו. AJAX מעביר רק את המידע המעודכן לשרת וממנו.
יישומי אינטרנט סטנדרטיים מעבדים אינטראקציות בין מבקרי אינטרנט לשרת באופן סינכרוני. המשמעות היא שדבר אחד קורה אחרי השני; השרת אינו מרובה משימות. אם אתה לוחץ על כפתור, ההודעה נשלחת לשרת והתגובה מוחזרת. אינך יכול ליצור אינטראקציה עם אלמנטים אחרים בדף עד שהתגובה תתקבל והדף יעודכן.
ברור שעיכוב מסוג זה יכול להשפיע לרעה על חווייתו של מבקר הרשת - ומכאן, AJAX.
מה זה AJAX?
AJAX אינה שפת תכנות, אלא טכניקה המשלבת סקריפט בצד הלקוח (כלומר סקריפט שפועל בדפדפן המשתמש) שמתקשר עם שרת אינטרנט. יתר על כן, שמה מטעה במקצת: בעוד שיישום AJAX עשוי להשתמש ב- XML בכדי לשלוח נתונים, הוא יכול להשתמש רק בטקסט רגיל או בטקסט JSON. אך באופן כללי, הוא משתמש באובייקט XMLHttpRequest בדפדפן שלך כדי לבקש נתונים מהשרת ו- JavaScript כדי להציג את הנתונים.
AJAX: סינכרוני או אסינכרוני
AJAX יכולה לגשת לשרת בצורה סינכרונית וגם באופן אסינכרוני:
- באופן סינכרוני, בו הסקריפט נעצר ומחכה לשרת שישלח תשובה לפני שתמשיך.
- באופן אסינכרוני, שבה התסריט מאפשר לדף להמשיך לעבד ומטפל בתשובה אם ומתי הוא מגיע.
מעבד את בקשתך באופן סינכרוני דומה לטעינת העמוד מחדש, אך רק המידע המבוקש יורד במקום העמוד כולו. לפיכך, השימוש ב- AJAX באופן סינכרוני מהיר יותר מאשר לא להשתמש בו כלל - אך עדיין הוא מחייב את המבקר שלך לחכות שההורדה תתרחש לפני שתוכל להתקיים אינטראקציה נוספת עם הדף. אנשים יודעים שלעתים הם צריכים לחכות לטעינת העמוד, אך רוב האנשים לא רגילים להמשך עיכובים משמעותיים לאחר הימצאותם באתר.
מעבד את בקשתך באופן אסינכרוני נמנע מהעיכוב בזמן שאחזור מהשרת מתרחש מכיוון שהמבקר יכול להמשיך לקיים אינטראקציה עם דף האינטרנט; המידע המבוקש יעובד ברקע והתגובה תעודכן את הדף ברגע שהוא יגיע. יתרה מזאת, גם אם התגובה מתעכבת - למשל במקרה של נתונים גדולים מאוד - מבקרים באתר עשויים שלא להבין זאת מכיוון שהם תפוסים במקום אחר בדף.
לכן, הדרך המועדפת להשתמש ב- AJAX היא להשתמש בשיחות אסינכרוניות בכל מקום אפשרי. זוהי הגדרת ברירת המחדל ב- AJAX.
מדוע להשתמש ב- AJAX סינכרוני?
אם שיחות אסינכרוניות מספקות חווית משתמש כל כך משופרת, מדוע AJAX מציעה דרך לבצע שיחות סינכרוניות בכלל?
בעוד שיחות אסינכרוניות הן הבחירה הטובה ביותר ברוב המוחלט של הזמן, ישנם מצבים נדירים שבהם זה לא קורה הגיוני לאפשר למבקר שלך להמשיך לקיים אינטראקציה עם דף האינטרנט עד לתהליך מסוים בצד השרת משלים.
ברבים מהמקרים האלה, עדיף שלא להשתמש ב- AJAX כלל, ובמקום זאת לטעון מחדש מחדש את הדף כולו. האפשרות הסינכרונית ב- AJAX קיימת עבור מספר מצבים קטן שבהם אינך יכול להשתמש בשיחה אסינכרונית אך טעינת הדף כולו אינה מיותרת. לדוגמה, יתכן שתצטרך לטפל בעיבוד טרנזקציות כלשהו שההזמנה חשובה לו. שקול מקרה בו דף אינטרנט צריך להחזיר דף אישור לאחר שהמשתמש לחץ על משהו. משימה זו מחייבת סנכרון הבקשות.