AJAX (תכנות)

מתוך ויקיפדיה, האנציקלופדיה החופשית

קפיצה אל: ניווט, חיפוש

AJAX, ראשי תיבות של Asynchronous JavaScript And XML, היא טכניקה ליצירת יישומי דפדפן אינטראקטיביים המבוססים על קוד המורץ במסגרת דף HTML בודד, ולא כיישום מרובה דפים, כמקובל בסביבת הווב. מטרתה העיקרית של הטכניקה היא שיפור חוויית המשתמש והאצת מהירות הטעינה של דפי האינטרנט, מאחר שהיא מאפשרת לעדכן רק חלקים מבוקשים בדף האינטרנט, ללא צורך לטעון את הדף כולו מחדש במחשבו של המשתמש.

מטרה זו מושגת באמצעות יצירת תקשורת והחלפת מידע בין מחשב הלקוח לשרת דפי האינטרנט באמצעות קוד JavaScript. כלומר, האינטראקטיביות של יישומי AJAX מושגת באמצעות קוד המורץ בצד-הלקוח, זאת בניגוד לשימוש טהור בטכנולוגיות כמו PHP ו-ASP, שבהן הקוד מורץ בצד-השרת, וללקוח מגיע דף HTML סטטי, ולא יישום מלא. באופן זה נמנעת תקשורת מיותרת בין הלקוח לשרת, מופחת העומס בצד השרת ונפח מידע החוזר על עצמו אשר נשלח ללקוח פוחת.

כאשר משתמשים ב-AJAX עדיין יש צורך בטכנולוגיית צד-שרת כמו PHP או JSP, אלא שבמקום לשלוח דף HTML שלם, נשלח ללקוח רק המידע, והלקוח מפרש את המידע ומציג אותו למשתמש.


תוכן עניינים

[עריכה] מרכיביה של טכניקת AJAX

טכניקת AJAX משתמשת בשילוב של טכנולוגיות קיימות:

  • XHTML (או HTML) ו-CSS לסימון ועיצוב מידע.
  • שפת JavaScript למימוש הלוגיקה של היישום, לגישה אל השרת ולאינטרקציה עם המשתמש על ידי מניפולציה של ה-DOM.
    • אובייקט XMLHttpRequest להחלפת נתונים עם השרת באופן אסינכרוני. בסביבות עבודה אחדות של AJAX ובסיטואציות מסוימות, נעשה שימוש בתגית iframe במקום באובייקט XMLHttpRequest להחלפת מידע עם שרת האינטרנט.
  • XML משמש לרוב ככלי להעברת נתונים מהשרת. כל פורמט אחר יפעל גם כן, כולל HTML או CSV ("טבלאות" טקסט המפורדות על ידי פסיקים).

כמו DHTML, ‏LAMP, או SPA, גם ‏AJAX אינה טכנולוגיה לכשעצמה, אלא מונח שמתייחס לשימוש בקבוצת טכנולוגיות יחדיו. למעשה, כבר מופיעות טכנולוגיות נגזרות/מורכבות שמבוססות באופן ממשי על AJAX. כגון AFLAX.

[עריכה] דפדפנים תומכים

שם גרסה ראשונה שתמכה ב Ajax תמיכה מובנית תמיכה באמצעות תוסף הערות
Microsoft Internet Explorer 5.0 החל מגרסה 7.0 כן באמצעות ActiveX -
Mozilla Firefox 1.0 כן - בנוסף כל דפדפן אחר המבוסס מנוע הרנדור "גיקו"
דפדפן אופרה 8.0 כן - -
ספארי 1.2 כן - -
Netscape 7.1 כן - -
Konqueror  ? כן - רינדור ה HTML מושג באמצעות KHTML.
iCab 3.0 Beta כן - -

[עריכה] דוגמה לשירות מבוסס AJAX

תיבת החיפוש של ויקיפדיה

תיבת החיפוש, המופיעה בצד ימין של כל מסך של אתר זה, מבוססת על AJAX - בעת התחלת הקלדתה של מילה לחיפוש, מוצגים למשתמש שמות ערכים המתחילים באותיות שהוקלדו, בהתאם למידע שנצבר בשרתי גוגל ובהתאם לאותיות שהוקלדו, באופן המאפשר למשתמש לבחור את הערך המתאים לו, או להמשיך ולהקליד. הדבר מתבצע ללא טעינה מחדש של הדף, אלא על ידי שליחה של האותיות שכבר הוקלדו, קבלת רשימת מילים מהשרת באופן א-סינכרוני מפעולת המשתמש, והצגת רשימת התוצאות למשתמש.

[עריכה] יתרונות וחסרונות

יתרונות השיטה:

  • מילוי טפסים ארוכים: כאשר משתמש מתבקש למלא טופס והשדות קשורים אחד לשני בקשרי גומלין, ניתן לממש קשרי גומלין אלה בגוף הטופס. דוגמה: אם נסמן שם מדינה תפרס לפנינו לבחירתנו רשימת הערים שבה.
  • עדכון רציף של המידע המוצג, ללא צורך לרענן דף אינטרנט בכל פעם. כך למשל כאשר מנהלים שיחה בפורום ניתן לראות תגובות מיד כשהן מועלות על האתר.
  • סקרי דעת קהל ודירוגים: התוכנה מקצרת את זמן הפעולה, כך שמצטמצם זמן המתנת הגולשים והיענותם גדלה.
  • התראה על טעויות: מאפשר למשתמשים לגלות מיידית טעויות ולא להקליד נתונים מחדש (למשל: אם שם משתמש כבר קיים במערכת, תתקבל התראה מיידית).
  • השלמה אוטומטית של טקסטים: בעת הקלדת הטקסט המערכת מזהה מילים מוכרות ומשלימה אותן אוטומטית. לדוגמה: במנוע החיפוש של גוגל.

חסרונות השיטה:

  • תפקוד לחצן ה-Back של הדפדפן יכול להיפגע.
  • קושי בשמירת דפים במועדפים.
  • השהיית הרשת (network delay) יכולה לגרום לבעיית שימושיות.
  • יש צורך לאפשר JavaScript.
  • קושי בתאימות לתקני נגישות (כגון WAI)

[עריכה] ראו גם

[עריכה] קישורים חיצוניים