7 באגים בדפדפנים כרוניים הפוקדים את האינטרנט

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

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

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

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

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

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

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

מַעֲרָך

באגים בדפדפן הגלויים ביותר הם תקלות פריסה. מסד הנתונים של באגים של Mozilla של Bugzilla מכיל 10 חלקים לבעיות פריסה, וזה לא כולל בעיות פריסה המסווגות כקשורות ל- DOM, CSS או Canvas. התפקיד החשוב ביותר של הדפדפן הוא לסדר את הטקסט והתמונות, ולעשות את הבעיה לעתים קרובות קשה.

באגים רבים בפריסה יכולים להיראות קטנים עד שהם כמעט אזוטריים. באג Bugzilla 1303580, למשל, קורא ל- Firefox להשתמש בגרסה נטויה של גופן כאשר תגי CSS קוראים לאלכסון. אולי רק מכור לגופנים יבחין בכך. בינתיים Bugzilla bug 1296269 מדווח כי חלקים מהאותיות ב- Comic Sans נקצצו, לפחות ב- Windows. מעצבי גופנים מבחינים, וזה חשוב להם. כאשר הם לא מצליחים לקבל את המראה והתחושה הנכונים בכל הדפדפנים, מעצבי אתרים יכולים להיות מתוסכלים מדי.

יש מאות, אלפים, אולי אפילו מיליונים מהבאגים האלה. נכון לעכשיו, נתקלנו בבעיות עם תמונות שנעלמות בעורך CMS שלנו ותגיות טווח המופיעות רק ב- DOM.

דליפת זיכרון

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

הפרטים של באגים של דליפת זיכרון יכולים להיות מטורפים בטירוף, ואנחנו ברי מזל שכמה מתכנתים לוקחים את הזמן לתקן אותם. שקול את הבעיה 640578 ממחסנית הדפדפן Chronium. שינוי חלק מה- DOM על ידי התעסקות עם innerHTMLהנכס דולף זיכרון. פיסת קוד לדוגמה עם קריאת לולאה חוזרת ונשנית requestAnimationFrameתשכפל את הבעיה. יש עשרות נושאים כאלה.

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

הֶבזֵק

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

נגיעות ולחיצות

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

Safari, למשל, תפספס לפעמים הקשות אצבעות על הטקסט בתג (151933). לפעמים התפריטים לא עובדים ב- iPad מכיוון שהדפדפן העביר את המלבן לחיפוש קלט (150079). לפעמים הקליקים מפעילים נענוע מוזר בפריט - שאולי אפילו נראה כאילו הוא נעשה בכוונה על ידי מעצב עצבני (158276). כל אלה מובילים לבלבול כאשר הטקסט או התמונות על המסך אינם מגיבים כפי שאנו מצפים.

וִידֵאוֹ

התוכנית הייתה תמיד לפשט את מסירת האודיו והווידאו על ידי העברת האחריות בתוך הדפדפן ומחוץ לעולם התוספים. זה ביטל את בעיות הממשק, אבל זה לא הסיר את כל הבעיות. רשימת באגים בווידאו ארוכה, ורבים מהם גלויים מדי. ערך Bugzilla 754753 מתאר "כתמים אדומים וירוקים בעיקר המכילים תמונות רפאים שונות", וערך Bugzilla 1302991 "" מגמגם "מחוסר מילה טובה יותר."

כמה מהנושאים המורכבים ביותר מתעוררים כאשר הדפדפנים משלבים את מנגנוני ההצפנה השונים שנועדו למנוע פירטיות. באג 1304899 מציע ש- Firefox לא מוריד אוטומטית את מנגנון ההצפנה הנכון (EME) מ- Adobe. האם זו אשמת פיירפוקס? של אדובי? או אולי פרוקסי מוזר?

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

רְחִיפָה

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

הדפדפן החדש של Microsoft Edge, למשל, לא מסתיר את הסמן כאשר העכבר מרחף מעל כמה פריטי קלט (817822). לפעמים הריחוף לא מסתיים (5381673). לפעמים אירוע הרחף מקושר לפריט הלא נכון (7787318). כל זה מוביל לבלבול ומרתיע את השימוש באפקט די מסודר.

תוכנה זדונית

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

הבעיה היא שממשק ההרחבה די חזק. הרחבה יכולה להכניס תגים וקוד שרירותיים לכל האתרים. בידיים הנכונות זה מאוד מגניב, אבל קל לראות איך הקוד החדש מהסיומת יכול להיתקל בקוד מהאתר. מה? לא רצית להגדיר מחדש את התנהגות $הפונקציה?

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

מאמרים קשורים

  • מעבר ל- jQuery: מדריך מומחה למסגרות JavaScript
  • סקירה: 7 IDE של JavaScript עומדים במבחן
  • פתיחה ב- HTML5: כיצד מדדים Chrome, Safari, Firefox, IE ואופרה
  • סקירה: 13 מסגרות רשת פרימו פייתון
  • כוחה של תכנות עצלן
  • הורדה: מדריך לפיתוח קריירה למפתחים
  • 7 רעיונות תכנות גרועים שעובדים
  • 9 הרגלי תכנות גרועים שאנחנו אוהבים בסתר
  • 21 מגמות תכנות חמות - ו 21 מתקררות