לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 30-10-2009, 01:01
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
xHTML

מהו למעשה מסמך HTML או מסמך XHTML ?
ככל הנראה מפתחי אתרים רבים אינם מודעים לנושא הנוגע למסמכי xHTML*.
בבלוג של Evan Geor פורסם מאמר שמוכיח שרוב האתרים ברשת אינם הותאמו לתקן ה-XHTML כפי שטענו. אמנם המאמר פורסם בשנת 2003, אך אני חושב שהמצב דומה גם היום.
אסביר בקצרה על המושגים, אך חשוב שתקראו את ההפניות והקישורים שאני מספק בהודעה זו.

* בסימון "xHTML" הכוונה ל- "HTML או XHTML".

ב-1980, עוד לפני פיתוח שפות xHTML, שפת הסימון SGML (ר"ת Standard Generalized Markup Language) נוצרה.
שפה זו נועדה לייצג\לסמן מידע, והרעיון החדשני בה היה הקביעה ששפת הסימון תשקף את מבנה המסמך, מבלי להשפיע על ההצגה הויזואלית של המידע (כיצד המידע יוצג במסך). כלומר, SGML הפרידה בין תוכן לעיצוב.
בנוסף, SGML ציינה את תחביר ה-DTD שקובע אילו תגים רשאים להופיע במסמך ה-SGML, איפה התגים רשאים להתמקם, מהם מאפייני התגים ומהו אופי תוכנם.
שפת SGML סיפקה תכונות רבות ונהפכה לשפה מורכבת ומתירנית, עד כדי כך שהיה קשה ללמוד וליישם אותה, גם מבחינת התוכנה שתנתח מסמכי SGML.

בהשפעת SGML, נוצרה שפת HTML שכללה קבוצת תגים קטנה (עד 20). קבוצת תגים זו התאימה לשימושים רבים. השפה HTML נהפכה למקובלת בזכות פשטותה (מיעוט תגים) והמצאת הקישור (Hypertext ; התג a).
בתחילה HTML לא כללה הצהרת DTD כיוון שלא היה צורך בה, כמו שאין צורך במסמך ה-DTD עבור מסמך HTML נכון להיום - התגים, מאפייניהם ותכונותיהם קבועים לפי ההגדרה בתקן.

כשני עשורים מאוחר יותר פותחה שפת XML (ר"ת eXtensible Markup Language) שהיא נגזרת של SGML. בזכות ניפוי רוב תכונות SGML שהפכו אותה לשפה מורכבת, היה קל יותר ללמוד וליישם את XML. בדומה ל-SGML, גם ב-XML ניתן ליצור תגים נוספים ולהגדירם באמצעות DTD, ומכאן באה המילה "Extensible".
המטרה העיקרית ביצירת XML הייתה לפשט את SGML ליצירת מסמכים בקלות בסביבת האינטרנט. בזכות פשטותה וגמישותה של XML, היא נלקחה לשימושים נוספים.
יתרון נוסף ב-XML זה שמנתח המשפט (ב-"מנתח משפט" הכוונה ל-parser, להלן "מנתח") שלה קפדני יותר ולא סובל טעויות, כך שבמידה ובמסמך תימצא טעות - המנתח יפסיק את עיבוד המסמך ויודיע על הטעות.

בעקבות התפתחות המכשירים הסלולריים, הטמעת מנתח HTML במכשיר הסלולרי היה דבר לא רצוי שלוקח נפח וזמן עיבוד רבים מידי.
היה צורך לקבוע HTML חדש, שהתקן שלו יהיה דומה ל-XML מבחינת סידור ותצורת התגים, על מנת להקטין את נפח תוכנת המנתח ולגרום לה לעבד את המסמך מהר יותר.
מנתח XML ידוע בנפחו הקטן וזמן עיבוד מהיר לעומת מנתח HTML, בזכות התקן המחמיר של XML. מכאן באה ההמצאה שפת XHTML (מלבד הסיבות כאן), שתכלול את כל התגים של HTML ותפעל לפי התקן המחמיר של XML.
W3C סיפקו למחברי המסמכים את התקן XHTML 1.0 שנועד למעבר קל מתקן HTML ל-XHTML, בעזרת כמה קווים מנחים.
מסמכי XHTML מאפשרים הטמעת שפות סימון נוספות, כמו MathML המתארת ביטויים מתמטיים, וזה עוד אחד מיתרונותיו הגדולים של XHTML. עד כמה שבדקתי בעזרת העמוד הזה, IE6 תומך בהצגת MathML.

כדי שמסמך XHTML יפוענח ע"י מנתח XML, נדרש ציון MIME type (להלן "סוג מסמך") שערכו "application/xhtml+xml". ערך זה של סוג מסמך אינו נתמך ע"י הדפדפן הפופולרי ביותר בעולם דאז - IE6 (וגם אינו נתמך ע"י IE7/8).
לכן הפשרה שהוצעה היא לשלוח מציין סוג מסמך "text/html" עבור דפדפנים שאינם תומכים ב-XHTML (בעזרת רמז מהכותר Accept שדפדפן שולח), ושליחת "application/xhtml+xml" עבור דפדפנים שכן תומכים.
הפשרה הזו עורערה מהסיבות הבאות:
  1. הוספת הסיומת "</ " לתגים הייתה עבור מסמך ה-HTML (שאמור היה להיות מסמך XHTML, רק שהוא הוגש עם ערך סוג מסמך של "text/html") כסיומת לא תקנית, בגלל הלוכסן הקדמי שמופיע בה.
    יש מנתחי ה-HTML נוהגים להסיר לוכסן זה, שמתפרש כמאפיין לא חוקי של התג שבו הוא נמצא. אך יש מנתחי HTML שעבורם לוכסן זה מציין סיומת (תכונת SGML, נקראת "Null End Tags").
    לכן מנתחי HTML מסוימים יחשבו שפיענוח התג מסתיים בלוכסן, דבר שישאיר את התו "<" בכל פינה במסמך.
    סיבה זו נראית לי מיותרת כיוון שהדפדפן הישן ביותר שנמצא עדיין בשימוש ניכר יחסית הוא IE6, שאצלו הבעיה לא קיימת עד כמה שראיתי.
  2. אי-אפשר להחביא את תוכן תגי style ו-script מדפדפנים ישנים.
    נימוק מיותר - אני מניח שמתכוונים לדפדפנים ישנים יותר מ-IE6, שכידוע לא משתמשים בהם.
  3. המאפיין xmlns לא תקין ב-HTML4.
    סיבה זו נראית לי מיותרת, ראה סעיף 1.
  4. הצהרות ה-DTD עבור xHTML אינן תואמות אחת את השניה.
    סיבה זו נראית לי מיותרת כיוון שב-XHTML אין צורך ב-DTD, כי אוטומטית מצב הדפדפן נקבע ל-strict mode.
הערה: שלא תטעו - מה שקובע את סוג המסמך זה ערך ה- MIME type, ולא ה-DTD. ה-DTD קובע אך ורק כיצד הדפדפן "יתנהג" או "יציג" את האלמנטים במסמך - לפי החוקים של הדפדפנים הישנים שלא תאמו את התקן (Quirks mode), או לפי החוקים שכן תואמים את התקן (Strict mode או Almost Strict mode). קראו על Quirks mode and strict mode.


למרות יתרונותיו של XHTML, כנראה נצטרך לשכוח ממנו בזמן הקרוב:

IE לא תומך בזה, ועדיין משתמשים בו חלק לא מבוטל של גולשים, אז עדיין יהיה צורך להגיש מסמכים עם mime type של text/html. זה אומר שיתרון שפות הסימון הנוספות (MathML, SVG, ...) של XHTML יהיה בלתי אפשרי ליישום כשרוצים שהאתר ייראה אותו הדבר אצל כל הגולשים.
ואם יתרון שפות הסימון הנוספות מתבטל, אז נשאר רק עיבוד מהיר יותר (להוציא FF2) של מסמך ה-XHTML ומנתח משפט קפדני. עיבוד מסמך מהיר יותר ככל הנראה לא כ"כ משמעותי, כיוון שצוואר-הבקבוק באפליקציות Web זה מהירות הורדת המסמך (אפילו אם שדרגתם ל-50Mb).
בנוסף, מכשירים ניידים נהיו בעלי זכרון גדול יותר עם מעבדים איכותיים יותר שרצים במהירויות גבוהות יותר.
ועכשיו נשארנו רק עם מנתח משפט קפדני... כך ששימוש ב-HTML4 נראה עדיף.
HTML5 הגיע, עם תגים וחוקים חדשים. התגים החדשים אמורים לתאר את מבנה האתר טוב יותר (סמנטיות) ו-APIs מובנים (לדוגמא, הצגת וידאו ואודיו). החוקים החדשים אמורים להקל על מנתח המשפט בעיבוד המסמך.

כמובן שכתיבה ב-HTML לא אומר בהכרח שהקוד שלכם לא יכול להיות מסודר ו"נקי" כמו קוד XHTML. אין מגבלה כזו.


סימוכין והפניות (שימו לב לתאריכים):


אז באיזה תקן אתם הולכים להשתמש?
אני עם HTML
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 02-11-2009, 19:16
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 2 שנכתבה על ידי ישראל K שמתחילה ב "תגובות בקצרה: 1. המאמר..."

תודה על ההערות

1. דווקא רוב האתרים שאני רואה, שכותבים קוד XHTML, בסוף מגישים אותו כ- text/html.
אפילו http://www.csszengarden.com עושה זאת...

2. נכון, אבל האם ההרחבות זה לא חלק משמעותי לא פחות?
במקום השימוש ב-LaTeX, אפשר להשתמש ב-MathML, זה יותר משמעותי...

3. נכון ש-XHTML מדגישה את ההבדל בין תוכן לעיצוב, וזה דבר חשוב! כך גם אני חושב.
אבל הבדל בין תוכן לעיצוב אפשר לממש גם ב-HTML. אז אם ניתן לממש זאת בשני שפות הסימון, אני מניח שאפשר להוריד טענה זאת.

ועד כמה שאני יודע, ב-XHTML 1.0 (וכנראה גם ב-1.1) אין את חידוש התגים שיש ב-HTML5, שעוזר לסמנטיות של האתר! מה יותר חשוב מהסמנטיות עבור מנועי החיפוש?

עוד סיבה היא ש-W3C הפסיקו לעבוד על XHTML2.0 לטובת HTML5. לפי הבנתי, אמור להיות XHTML5 אבל הרעיון היחידי בו שעיבוד המסמך יהיה קפדני יותר, ללא אפשרויות ההרחבה שהן המהות של XHTML (או XML).
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 03:56

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר