כיצד לבנות UX טוב יותר עם HTML5 נתונים * תכונות
האם אי פעם רצית להוסיף נתונים מותאמים אישית לאלמנט HTML מסוים כדי לגשת אליו מאוחר יותר עם JavaScript? לפני HTML5 הופיע בשוק, אחסון נתונים מותאמים אישית הקשורים DOM היה מהומה אמיתית, ומפתחים נאלצו להשתמש בכל מיני פריצות מגעיל, כגון הצגת תכונות לא סטנדרטיות או באמצעות שיטה מיושנת setUserData () כדי לעקוף את הבעיה.
למרבה המזל אתה לא צריך לעשות את זה יותר, כמו HTML5 הציגה חדש גלובלי נתונים-*
תכונות המאפשרים להטביע מידע נוסף על כל רכיבי HTML. החדש נתונים-*
תכונות לעשות HTML יותר להרחבה, לכן מאפשרים לך לבנות יישומים מורכבים יותר, וליצור חוויית משתמש מתוחכמת יותר מבלי להשתמש בטכניקות עתירי משאבים כגון שיחות Ajax או שאילתות מסד נתונים בצד השרת.
תמיכה בדפדפן של התכונות הגלובליות החדשות טובה יחסית, שכן הן נתמכות על ידי כל הדפדפנים המודרניים (IE8-10 תומך בהם באופן חלקי).
תחביר של נתונים-*
תכונות
התחביר של החדש נתונים-*
תכונות דומות למאפייני הקידומת של האריה. ניתן להכניס כל מחרוזת קטנה במקום *
סימן. אתה גם צריך להקצות ערך לכל תכונה בצורת מחרוזת.
נניח שברצונך ליצור עלינו עמוד, ולאחסן את שם המחלקה שבה עובד כל עובד. אתה לא צריך לעשות שום דבר אחר מלבד הוספת מחלקת נתונים
תכונה מותאמת אישית לאלמנט HTML המתאים באופן הבא:
- פלוני אלמוני
- ג 'יין דו
המותאם אישית נתונים-*
תכונות גלובליות, בדיוק כמו מעמד
ו id
תכונות, כך שתוכל להשתמש בהם בכל אלמנט HTML. ניתן גם להוסיף רבים נתונים-*
תכונות לתג HTML כרצונך. בדוגמה שלמעלה, לדוגמה, ניתן להציג תכונה מותאמת אישית חדשה שנקראת משתמש בנתונים
כדי לאחסן שמות משתמש של עובדים.
- פלוני אלמוני
- ג 'יין דו
ככלל, אם אתה רוצה להוסיף תכונה מותאמת אישית משלך אלמנט HTML, אתה תמיד צריך להקדים אותו עם נתונים-
מחרוזת. באופן דומה, כאשר אתה רואה מאפיין בעל קידומת נתונים בקוד של מישהו אחר, תוכל לדעת בוודאות שזו תכונה מותאמת אישית שהציגה המחבר.
מתי להשתמש ומתי לא להשתמש בתכונות מותאמות אישית
W3C מגדיר מנהג נתונים-*
תכונות כמו:
“תכונות נתונים מותאמות אישית מיועדות לאחסן נתונים מותאמים אישית באופן פרטי לדף או ליישום, שעבורם אין תכונות מתאימות יותר או אלמנטים.”
כדאי לשקול להשתמש נתונים-*
תכונות כאשר לא ניתן למצוא תכונות סמנטיות אחרות עבור הנתונים שברצונך לאחסן.
זה לא הרעיון הטוב ביותר להשתמש בהם אך ורק למטרות עיצוב, כמו שאתה יכול לבחור מתוך מעמד
וה בסגנון
תכונות. אם ברצונך לאחסן סוג נתונים של HTML5 יש תכונה סמנטית, כגון תאריך שעה
תכונהI אלמנט, השתמש במקום התכונה המקודדת נתונים.
חשוב לציין זאת נתונים-*
תכונות להחזיק נתונים זה פרטי לדף או ליישום, מה שאומר שהם יהיו התעלמו על ידי סוכני המשתמש, כגון רובוטים של מנוע החיפוש ויישומים חיצוניים. ניתן לגשת רק למאפיינים בעלי קידומת נתונים בקוד הפועל באתר שמארח את ה- HTML.
המותאם אישית נתונים-*
תכונות משמשות באופן נרחב על ידי מסגרות Frontend, כגון Bootstrap ו Zurb Foundation, גם כן. החדשות הטובות הן שאתה לא בהכרח צריך לדעת איך לכתוב JavaScript אם אתה רוצה להשתמש בתכונות קידומת נתונים כחלק במסגרת, כפי שאתה רק צריך להוסיף אותם קוד HTML כדי להפעיל פונקציונליות של תוסף.
קטע הקוד להלן מוסיף הסבר קצר בצד שמאל ללחצן ב Bootstrap על ידי שימוש ב- נתונים לעבור
וה מיקום נתונים
תכונות מותאמות אישית והקצאת ערכים מתאימים להם.
יעד נתונים-*
תכונות עם CSS
למרות שזה לא מומלץ להשתמש נתונים-*
תכונות רק למטרות עיצוב, אתה יכול לבחור את רכיבי HTML הם שייכים בעזרת בוררים תכונה כללית. אם ברצונך לבחור בכל רכיב שיש לו מאפיין מסוים בעל קידומת נתונים, השתמש בתחביר זה ב- CSS שלך:
li [data-user] color: כחול;
שים לב שלא שמות המשתמש שיוצגו בכחול בקטע הקוד לעיל - לאחר שכל הנתונים המאוחסנים במאפיינים המותאמים אישית אינם גלויים - אך שמות העובדים הכלולים ב- אלמנטים (בדוגמה “פלוני אלמוני” ו “ג 'יין דו”).
אם ברצונך לבחור רק רכיבים שבהם תכונה בעלת קידומת נתונים לוקחת ערך מסוים, זהו התחביר שיש להשתמש בו:
li [data-department = "IT"] border: solid blue 1px;
ניתן להשתמש בכל בוררי התכונה CSS המסובכים יותר, כגון בורר קומבינטור כללי ([data-value ~ = "foo"]
) או בורר תווים כלליים ([data-value = = "foo"]
), עם תכונות קידומת נתונים גם כן.
גישה נתונים-*
תכונות עם JavaScript
באפשרותך לגשת לנתונים המאוחסנים במנהג נתונים-*
תכונות עם JavaScript באמצעות המאפיין dataset, או jQuery של נתונים()
שיטה.
וניל
ה מערך נתונים
רכוש הוא רכושו של HTMLElement
ממשק, זה אומר שאתה יכול להשתמש בו על כל תג HTML. ה מערך נתונים
הנכס נותן גישה לכל מותאם אישית נתונים-*
תכונות של אלמנט HTML נתון. המאפיינים מוחזרים כ- a DOMStringMap
אובייקט המכיל רשומה אחת עבור כל אחת נתונים-*
תכונה.
בשלנו עלינו לדוגמה, תוכל לבדוק בקלות את המאפיינים המותאמים אישית “ג 'יין דו” יש באמצעות מערך נתונים
רכוש בדרך הבאה:
var jane = document.getElementById ("jane"); console.log (jane.dataset); // DOMStringMap user: "janedoe", department: "IT"
אתה יכול לראות את זה חזר DOMStringMap
נתכש נתונים-
קידומות מוסרות משמות המאפיינים (משתמש
במקום משתמש בנתונים
, ו המחלקה
במקום מחלקת נתונים
). עליך להשתמש במאפיינים באותו פורמט אם ברצונך לגשת לערך של מאפיין מסוים בעל קידומת נתונים (במקום לרשימה של כל התכונות המותאמות אישית, כמו בקטע הקוד לעיל).
ניתן לאחזר את הערך של ספציפי נתונים-*
תכונה כמאפיין של מערך נתונים
נכס. כפי שציינתי קודם, אתה צריך להשמיט את נתונים-
קידומת משמו של הנכס, אז אם אתה רוצה לגשת לערך של ג 'יין משתמש בנתונים
תכונה, אתה יכול לעשות את זה ככה:
var jane = document.getElementById ("jane"); // janedoe
של jQuery נתונים()
שיטה
ה נתונים()
שיטת jQuery מאפשרת לקבל את הערך של תכונה עם קידומת נתונים. כאן אתה גם צריך להשמיט את נתונים-
קידומת בשם המאפיין כדי לגשת אליו כהלכה. בדוגמה שלנו, תוכל להציג הודעת התראה עם שם המחלקה שבה “ג 'יין” פועל עם הקוד הבא:
("מחלקה"), התראה (מחלקה););
ה נתונים()
יש להשתמש בקפידה בשיטה, שכן היא אינה פועלת רק כאמצעי להשגת הערך של מאפיין בעל קידומת נתונים, אלא גם לצרף נתונים למרכיב DOM באופן הבא:
var city = $ ("# jane") נתונים ("עיר", "ניו יורק");
הנתונים הנוספים שאתה מצרף עם jQuery של נתונים()
השיטה כמובן לא יופיע בקוד ה- HTML כמו חדש נתונים-*
תכונה, כך שאם שתי הטכניקות משמשות באותו זמן, אלמנט HTML נתון יאחסן שתי קבוצות של נתונים, אחת עם HTML והשניה עם jQuery.
בדוגמה שלנו “ג 'יין” קיבלתי נתונים מותאמים אישית חדשים ("העיר"
) עם jQuery, אבל זה זוג מפתח חדש ערך לא יופיע ב- HTML כמו חדש עיר נתונים
תכונה. אחסון נתונים בשתי דרכים שונות הוא לא הנוהג הטוב ביותר בלשון המעטה, כך רק להשתמש באחת משתי השיטות בבת אחת.
נגישות ו נתונים-*
תכונות
כמו הנתונים המוחזקים אישית נתונים-*
תכונות פרטיות, טכנולוגיות מסייעות לא יוכלו לגשת אליו. אם ברצונך לשמור על התוכן שלך נגיש למשתמשים מושבתים, לא מומלץ לאחסן תוכן שיכול להיות חשוב למשתמשים בדרך זו.