פתרון מיקרוסופטי לבעיית אי-התאימות של אינטרנט אקספלורר
22 בינואר, 2008 | מאת המערכת |
מיקרוסופט אישרה רשמית פרטים חדשים בעניין אופן הפעולה של גרסה 8 של הדפדפן שלה, Internet Explorer. הפרטים נחשפו בפוסט בבלוג הפיתוח הרשמי של הדפדפן, על ידי ארכיטקט התוכנה הראשי של הפרויקט, כריס וילסון. הפרט החשוב ביותר הוא, אולי, שימוש ב-3 מצבים שונים של מנוע הדפדפן להצגת הדף המבוקש.
שני המצבים הראשונים דומים לאופן הפעולה של IE7 כיום, ויהיו תואמים לו - כלומר, דפים יראו אותו דבר בשני הדפדפנים. שני המצבים הם עבור דפים ללא הצהרת DOCTYPE (מצב המכונה Quirks Mode) ודפים עם הצהרה (מצב המכונה Standards Mode). אגב, גם דפדפנים אחרים, כגון פיירפוקס, תומכים בשני מצבים אלה, המאפשרים לדפדפן להציג דפים לא-סטנדרטיים בצורה סבירה מצד אחד, ולהציג דפים סטנדרטיים במהירות גבוהה ובצורה מיטבית.
המצב השלישי, שהוא החדש, יאפשר ל-IE8 להיות תואם לסטנדרטים ברמה גבוהה; אך מצב זה יאופשר רק אם בונה האתר יוסיף הצהרה על כך באופן מפורש בתוך הקוד. כלומר: IE8 יהיה תואם לסטנדרטים, אבל אך ורק אם הדף ייבנה במיוחד עבור IE8. אז למרות שיש יתרונות מסוימים בגישה זו (עדיף להוסיף את ההצהרה של מיקרוסופט, מאשר לבזבז 40% מזמן הפרויקט על עקיפת הבאגים של מיקרוסופט), הרי שמיקרוסופט פתרו את בעיית התאימות לסטנדרטים על ידי דרישה שאינה חלק מהסטנדרט.
למידע נוסף על מצבי הפעולה של IE8 בפוסט בבלוג הפיתוח של אינטרנט אקספלורר, ובדיווח והדיון שבעקבותיו באתר סלאשדוט.
2 תגובות עבור “פתרון מיקרוסופטי לבעיית אי-התאימות של אינטרנט אקספלורר”
מאת תומר בתאריך 23 בינואר, 2008 | תגובה
בפיירפוקס אכן קיים מצב Quirk Mode ומצב Standard Mode, אבל הנפילה למצב Quirk מתבצעת רק כאשר כותב הדף לא ציין במפורש שהדף תקין (הצהרת Doctype).
אני מודה שלא קראתי את המידע לגבי אקספלורר 8, אבל בהחלט לא צריך לתקוף אותם לאור ההחלטה לחייב הצהרת doctype כאמצעי לזיהוי תאימות הדף. אם אקספלורר 8 יתמוך בתקנים בצורה מלאה יהיה מצויין, ואם המצב התיקני שלו יבטל כמה הרחבות מיותרות שמייקרוסופט ביצעו בתקן יהיה אפילו מצויין.
מאת רואה שחורות בתאריך 23 בינואר, 2008 | תגובה
אני חושש שלא הייתי מספיק ברור: המצב עוד יותר גרוע מזה. כדי לעבור למצב השלישי (Super standards mode), יש צורך לא רק ב-DOCTYPE, אלא גם בתג META מיוחד שמיקרוסופט המציאו לצורך העניין.