AJAX (תכנות)

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

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

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

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

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

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

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

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

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

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

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

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

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

יתרונות וחסרונות[עריכת קוד מקור | עריכה]

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

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

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

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

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]