במהלך השנה התבקשתי מספר פעמים לתת ייעוץ בנושא AJAX - מה זה ולמה זה טוב.
האמת היא שישנה הרגשה באויר ש- AJAX זה משהו שבצורה כזו או אחרת כולנו עשינו כבר מזמן אבל עד שהומצא המינוח לא ממש ידענו שזה זה - יש בזה משהו יעיד עליו אחד מאתרי הצהלנט שהקמנו מבוסס XML HTTP, DOM ו- JS בתחילת שנת 2000 (!!) - אבל מעבר להיותו רק מונח AJAX הגדיר בצורה מסודרת איך לנצל את כל הכלים והשיטות הידועות בצורה שתגביר את השימושיות ורמת ממשק המשתמש באפליקציות WEB.
אז לטובת סגירת 2007 במבצע ניקוי מדפים אני מרכז בפוסט הזה את הנקודות העיקריות לנושא החשוב הזה שנקרא AJAX.
אז מהן ארבעת העקרונות של AJAX?
1. הדפדפן מחזיק אפליקציה ולא רק תוכן כמו בעבר
2. השרת מעביר נתונים ממש ולא תוכן (שמכיל בתוכו גם את הנתונים בצורה מעורבת)
3. דגש על אינטרקציית לקוח-אפליקציה מתמשכת ורציפה, אין פליקרים - אין הרגשה שהחלפנו "ערוץ" במעבר מדף לדף. התהליך לא נקטע בשלבי ה- post או לחיצה על קישור שגורמת להריסת הדף.
4. שינוי בתפיסת הפיתוח - קידוד האתר כאפליקציה רציפה (על אף היותה Web-ית)
בעזרת קידוד פונקציות יעילות, קידוד המשכיות ורצף פעילות הדף גם ללא פניה לשרת ויצירת ממשק יעיל מול השרת לקבלת נתונים בלבד שיעובדו על ידי "האפליקציה" שכבר נטענה לדפדפן המשתמש.
הסכמה ארכיטקטונית בתמצות מהיר:
- השרת מחזיק את הנתונים המלאים
- הלקוח מחזיק נתונים חלקיים
- האפליקציה אצל הלקוח מכילה interface המשרתים אותה לעבודה מול השרת ולקבלת חלקי המידע על פי בקשה (on demand) וללא הפרעה בממשק המשתמש.
נקודות מפתח טכנולוגיות למימוש- AJAX:
פיתוח ב- Java script, שימוש והפרדה נכונה של CSS, ניצול אובייקט ה- DOM ליישום DHtml ברמה גבוהה וכמובן איך לא XMLHttpRequest לקבלת ושליחת פיסות המידע.
ואם תהיתם מה מצלצל מוכר כשחושבים על אידיאולגיית ה- AJAX - צדקתם... צריכת Services במטודולויית SOA מתאים ביותר ל- AJAX.
ואיך זה בא לידי ביטוי ברמה הטכנית - קשר הנתונים דפדפן שרת?
* אספקת HTML מלא לתוך IFRAME או DIV
* Streaming של נתונים באמצעות חיבור HTTP רציף שלא נסגר, כאשר השרת מבצע flushing של קטעי קוד לפי דרישה - מתאים ליישום חדרי צ'אט למשל...
* Hidden inner frame או hidden frame במסך שמאפשר עבודה מול השרת ללא הריסת הדף הנוכחי.
* שימוש ב- XML או ב- XML Island הניתנים לרענון ללא הפרעה לממשק.
* JSON – JavaScript Object Notation – שימוש ב- XmlHTTP לקבלת המידע כאובייקטים ממש (על ידי קבלת קוד Javascript) ולא על ידי XML.
* שימוש ב- XSLT להפיכת המידע לתצוגה בצד הלקוח בצורה אלגנטית שמאפשרת גם תחזוקה פשוטה יותר בעתיד.
בהצלחה!
קובי מגנזי, Kobi Magnezi