שימוש באפליקציות AJAX והאש פרגמנטס במבנה מצב (#!) לבניית עמודי אתר דינאמיים- סקירה כללית של יתרונות וחסרונות

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

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

מזה כשנה נעשה שימוש לא מחייב במנגנון המאפשר פתרון חלקי לנושא, וטיפול יותר מלא של מנועי חיפוש באתרים מסוג זה. הפתרון מתבסס על escaped_fragments- מנגנון מבוסס סקריפט ג'אווה המיושם בעיקר בצד השרת של האתר, והסכם (לא מחייב) לפיו כאשר מוצג למנוע חיפוש URL דינאמי שבנוי בצורה הנ"ל, המנוע ימיר אותו לURL שמכיל את הביטוי escaped fragments , ויחפשו בשרת. בתגובה לביטוי ה escaped fragment, השרת יציג למנוע החיפוש העתק סטטי (עמוד HTML רגיל) של הפרגמנט, או המצב, שמקביל לURL הדינאמי שהוצג למנוע החיפוש.

במילים אחרות, הפתרון שמתבסס על escaped fragments  משמעותו שמנועי חיפוש ממשיכים לראות עמודים סטאטיים ולא דינאמיים, ולשם כך על שרת האתר לייצר עבורם עמודי HTML במקביל לעמודים הדינאמיים שהוא מייצר עבור הגולשים.

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

להלן סקירה קצרה של היתרונות והחסרונות המרכזיים (במידה ותזדקקו להרחבה בנושא, נשמח לעמוד לשרותכם בכל עת).

יתרונות:

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

חסרונות:

  • הסכם וולונטרי ולא מחייב – כאמור, השימוש במנגנון ה escaped fragments הינו בגדר הסכם לא מחייב בין מנועי חיפוש והשרת. לא מדובר בפרוטוקול סטנדרטי ומקובל, ולכן:
    א. לא כל מנועי חיפוש/שרותי הרשת מקבלים אותו.
    ב. אין שום התחייבות שמנועי חיפוש ימשיכו לפעול לפי הסכם זה בעתיד.
    כלומר, מבחינת מנועי חיפוש- אתר שמפותח בצורה זו מסתכן בכך שיתכן שיום אחד מנועי חיפוש יחליטו לא לפעול יותר לפי ה escaped fragments  והאתר פשוט "יעלם" ממנועי חיפוש.
  • שברירי- גאווה – היות והמנגנון של ה escaped fragments מופעל בעזרת סקריפטים של ג'אווה בצד השרת, המנגנון שברירי מעט, ולעיתים לא עובד (לדוגמא- אם הסקריפט נתקע, לא מגיב, לא זמין וכו באופן זמני בשרת, ואז לא מוצגים למנועי חיפוש עמודי האתר)
  • לא זמין לכולם- גאווה – לא לכל המשתמשים יש ג'אווה או גרסא עדכנית של ג'אווה על המחשב שלהם. הדבר נכון במיוחד לאחרונה, לאחר שבשל מספר בעיות אבטחה חמורות יצאו מומחים וארגונים רבים ואף מדינות שלמות (כדוגמת ארה"ב) בהמלצה לגולשים לנתק או להסיר ג'אווה מהמחשבים שלהם. סטטיסטיקות מעריכות שכ4-5% מהגולשים נתקלים בקשיים משמעותיים בשימוש בג'אווה. לכאורה מדובר באחוז נמוך, אך באתר שמקבל לדוגמא 50,000 גולשים בחודש- המשמעות היא ש 2,500 איש לא יוכלו לראות את האתר כראוי– וזהו מספר משמעותי.
  • יצירת קישורים בעייתיים – על פי ההסכם הנ"ל, מנועי חיפוש לא יאנדקסו קישורים חיצוניים לאתר בפורמט ה ugly URL (URL שמכילים את ה escaped fragments). המשמעות היא שאם ישנם קישורים חיצוניים המובילים לאתר ומכילים את הביטוי escaped fragments, מנועי חיפוש יתעלמו מהם, וכוחם יאבד.
  • כפילויות תוכן והצגת ugly url בתוצאות חיפוש – לפי ההסכם הנ"ל מנועי חיפוש יציגו בתוצאות החיפוש רק את pretty url (ללא הביטוי escaped fragments), ולא יאנדקסו ככפילות תוכן את הפרגמנטים השונים שמוצגים להם. עם זאת, ישנם דיווחים רבים על אתרים שבהם כן אונדקסו עמודים שונים וכפילויות תוכן, וכן הוצגו ugly url  בתוצאות החיפוש. ככל הנראה, מדובר לרוב בתוצאה של יישום לא נכון של המנגנון שבהסכם, אבל היות והמספרים רבים, ניתן להניח כי גם אם הבעיה היא רק בצד האתר (פיתוח לא נכון), כנראה שהפתרון אינו חף מבעיות אם אתרים כה רבים כושלים ביישום.
  • פיתוח יותר מורכב – בניית עמודים דינאמיים כ"מצבים"  אולי מייצרת אתרים רזים וחכמים יותר, אבל מחייבת לצורך כך מחשבה ותכנון רב יותר בעת הפיתוח. המשמעות היא לא רק השקעה רבה יותר מצד המפתח, אלא גם יצירת אתר מורכב יותר, דבר המקשה בעתיד על שינויים וטיפולים, ומפתח תלות בבונה האתר המקורי.
    נקודה שחשוב לציין היא שלמעשה, מבחינת מנועי חיפוש וSEO, עבור אתרים עם עמודי HTML סטאטיים (במידה וניתן לשמור על ייחודיות התוכן) יש דווקא יתרון גדול למספר רב של עמודים באתר.
  • קושי מהותי במעבר ל FU  בהמשך – בהמשך לנקודה הנ"ל, יצירת אתר בעזרת אפליקציות AJAX (#!) בפורמט של מצבי עמוד, מקשה מאוד על המעבר בעתיד לעמודים סטאטיים ו Friendly URL ושימור הכח בעת המעבר. הסיבות לכך, בין השאר הן משום שיהיה על אנשי התוכן לעבור ממש מצב מצב (פרגמנט פרגמנט) וליצר עבורו באופן ידני הפנייה לעמוד החדש- משימה לא ראלית באתרים גדולים, ובנוסף יהיה צורך לשמר את מנגנון הגאווה בשרת כדי שיסייע לפענח מהו הפרגמנט שמבוקש מהשרת ומה להעביר לאיזה עמוד סטאטי חדש.
  • URL לא ידידותיים, מקשים על ניטור, קישורים חיצוניים, טיפול בבעיות וניווט באתר – היות וכתובות העמוד שנוצרות בצורת פיתוח זו (מצבים דינאמיים עם AJAX)  אינן ידידותיות וקשות מאוד לפענוח, הן מקשות בצורה משמעותית על ניטור הפעולות באתר, על יצירת קישורים אל האתר מגולשים ומשתמשים חיצוניים, על איתור תבניות ותקלות באתר וטיפול בהן, ואינן מקלות גם על גולשים להתמצא באתר.

הרשימה המצומצמת הנ"ל כללה יתרונות וחסרונות מרכזיים בלבד, וניתן למנות עוד יתרונות וחסרונות רבים.

במצבים שבהם יש הכרח ביצירת עמודים דינאמיים, אכן ניתן לפתח בעזרת AJAX ובשיטה הנ"ל, וחובה לעשות שימוש בescaped fragments ע"מ להפוך את תכני אפליקציית הAJAX לזמינים למנועי חיפוש.

עם זאת, לאור היתרונות והחסרונות הנ"ל, ברור כי במידה ואין צורך קריטי בפיתוח עמודים דינאמיים, מומלץ ככל האפשר להימנע מפיתוח בעזרת AJAX, ולפתח עמודים סטאטיים עם friendly url ותוכן מדויק וייחודי לכל עמוד.

* לפרטים טכניים על ההסכם הלא מחייב בנוגע לשימוש ב escaped fragments  כדי להפוך עמודים שיוצרו באפליקציות AJAX לזמינים למנועי חיפוש – שימוש ב escaped fragments

אין תגובות למאמר

עדיין לא נכתבו תגובות.

כתוב תגובה

שדות חובה מסומנים בכוכבית (*)