HTML5 Progress bar

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

מה זה Progress bar? כאשר אנו מבצעים איזשהו תהליך מול שרת, הרבה פעמים אנחנו צריכים איזשהו progress bar או בעברית מד התקדמות – משהו שיתן אינדקציה לגולש על התקדמות התהליך אל מול השרת. למשל אם העליתי קובץ לשרת למטרת עיבוד מסוימת, אני יכול (באמצעות AJAX) לבצע שאילתות לשרת ולבקש עדכון על התקדמות.
עד היום היה קל יחסית לעשות מד התקדמות עם כמה divים ועם קצת CSS וקצת מתמטיקה.

progress bar

אך בתקן HTML5, מאד קל לעשות progress bar בקלות וביעילות ללא מאמץ מיוחד – גם עם דפדפנים עתיקי יומין (וכולנו יודעים על איזה דפדפנים אני מדבר). קודם כל, איך עושים את זה? בקלות! הנה דוגמה:

This will be shown to IE9 and below: Progress: 65% done.

איך הקוד נראה? כך:


<progress max="100" value="65">
  <strong>This will be shown to IE9 and below: Progress: 65% done.</strong>
</progress>

הטקסט שנמצא בין תגיות ה-progress מוצג בפני דפדפנים ישנים – במקרה הזה אקספלורר 9 (כולל) ומטה.

ועל מנת לשנות את קצב ההתקדמות, כל מה שאני צריך לעשות זה לשנות את ערך ה-value שיש בשדה.

העיצוב של ה-Progress bar הוא דיפולטיבי ומשתנה לפי מערכת ההפעלה והדפדפן, אבל אפשר כמובן לשנות אותו ב-CSS כמו כל אלמנט HTMLי כלשהו. וכשאני מתכוון ללשנות, אני מתכוון לממש לשנות

חלק מכם יתלהבו, אבל עבור רובנו, אקספלורר 9 ו-8 הן עדיין בעיה שיש להתחשב בה. אם progress bar לא נתמך בתפלצת של מיקרוסופט, לא נוכל להשתמש בו לפחות בשנים הקרובות. בדיוק בשביל זה יש שני פץרונות – הראשון הוא הפולבק המוכר והאהוב – עבור כל הדפדפנים הנורמליים נשתמש ב-progress bar ובאמצע, בתוך אלמנט ה-progress bar נשים את ה-divים המוכרים והמשעממים. זה פתרון שיעבוד לכולם, אבל הוא מאד מבאס. היתרון של ה-progress bar בתקן החדש הוא בזה שאנחנו לא צריכים להתעסק עם הדיבים הישנים.

פתרון נוסף הוא polyfill – האק מבוסס javascript שיגרום לאקספלוררים הישנים לתמוך ב-progress bar. איך משתמשים בו. כל מה שצריך לעשות זה להוסיף את progress-polyfill.css ואת progress-polyfill.js אל הקוד שלנו ותהיה לנו תמיכה מלאה באקספלורר 9 ותמיכה חלקית באקספלורר 8. מעכשיו כבר אין תירוץ – אפשר להתחיל להשתמש באלמנט progress bar שהוא גם אלמנט סמנטי יותר מערימת ה-divים שהיינו משתמשים בה עד עכשיו, גם קל לעצב אותו וגם קל להשתמש בו (כל מה שצריך זה רק לשנות את ה-value עם JavaScript, זה הכל).

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

רינדור של קליינט סייד עם SSR

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

גלילה לראש העמוד