الصفحة الرئيسية » UI / UX » كيفية بناء أفضل UX مع سمات HTML5 البيانات *

    كيفية بناء أفضل UX مع سمات HTML5 البيانات *

    هل سبق لك أن أردت إضافة بيانات مخصصة إلى عنصر HTML معين للوصول إليها لاحقًا باستخدام JavaScript؟ قبل ظهور HTML5 في السوق ، كان تخزين البيانات المخصصة المرتبطة بـ DOM يمثل مشكلة حقيقية ، وكان على المطورين استخدام جميع أنواع الاختراقات السيئة ، مثل تقديم سمات غير قياسية أو استخدام طريقة setUserData () القديمة للتغلب على المشكلة..

    لحسن الحظ ، لم تعد مضطرًا إلى القيام بذلك ، حيث أن HTML5 قد أدخل عالميًا جديدًا البيانات-* السمات التي تجعل من الممكن تضمين معلومات إضافية على أي عناصر HTML. الجديد البيانات-* سمات جعل HTML أكثر الموسعة, وبالتالي تمكنك من بناء تطبيقات أكثر تعقيدا, وإنشاء تجربة مستخدم أكثر تطوراً دون الحاجة إلى استخدام تقنيات كثيفة الاستخدام للموارد مثل استدعاءات Ajax أو استعلامات قاعدة البيانات من جانب الخادم.

    يعد دعم المستعرض للسمات العالمية الجديدة جيدًا نسبيًا ، حيث يدعمه جميع المتصفحات الحديثة (IE8-10 يدعمها جزئيًا).

    بناء الجملة من البيانات-* سمات

    بناء جملة الجديد البيانات-* السمات تشبه تلك الخاصة بسمات aria-prefixed. يمكنك إدراج أي سلسلة صغيرة بدلاً من * إشارة. تحتاج أيضًا إلى تعيين قيمة لكل سمة في شكل سلسلة.

    دعنا نقول أنك تريد إنشاء معلومات عنا صفحة ، وتخزين اسم القسم حيث يعمل كل موظف. ليس عليك أن تفعل أي شيء آخر بصرف النظر عن إضافة ، قسم البيانات السمة المخصصة لعنصر HTML المناسب بالطريقة التالية:

     
    • فلان الفلاني
    • جين دو

    العادة البيانات-* سمات عالمية ، تماما مثل صف دراسي و هوية شخصية السمات ، حتى تتمكن من استخدامها على كل عنصر HTML. يمكنك أيضا إضافة أكبر عدد ممكن البيانات-* سمات لعلامة HTML كما تريد. في المثال أعلاه ، على سبيل المثال ، يمكنك تقديم سمة مخصصة جديدة تسمى المستخدم البيانات لتخزين أسماء المستخدمين الموظفين.

     
    • فلان الفلاني
    • جين دو

    كقاعدة عامة ، إذا كنت تريد إضافة السمة المخصصة الخاصة بك إلى عنصر HTML ، فيجب عليك دائمًا أن تسبقها بـ البيانات- خيط. وبالمثل ، عندما ترى سمة مسبوقة للبيانات في رمز شخص آخر ، يمكنك التأكد من أنها سمة مخصصة مقدمة من قبل المؤلف.

    متى يجب استخدام ومتى لا تستخدم سمات مخصصة

    يحدد W3C العرف البيانات-* سمات مثل ذلك:

    “تهدف البيانات المخصصة إلى تخزين البيانات المخصصة الخاصة بالصفحة أو التطبيق ، والتي لا توجد بها سمات أو عناصر مناسبة.”

    الأمر يستحق النظر في استخدام البيانات-* سمات عندما لا يمكنك العثور على أي سمات دلالات أخرى للبيانات التي تريد تخزينها.

    إنها ليست أفضل فكرة لاستخدامها فقط لأغراض التصميم ، حيث يمكنك الاختيار من بينها صف دراسي و ال قلم المدقة الصفات. إذا كنت ترغب في تخزين نوع بيانات له HTML5 له سمة الدلالية ، مثل التاريخ والوقت سمة ل العنصر ، استخدم ذلك بدلاً من سمة بادئة البيانات.

    من المهم أن نلاحظ ذلك البيانات-* سمات عقد البيانات هذا خاص بالصفحة أو التطبيق, مما يعني أنه سيتم تجاهلها من قبل وكلاء المستخدم ، مثل روبوتات محرك البحث والتطبيقات الخارجية. يمكن الوصول إلى سمات بادئة البيانات فقط عن طريق الشفرة التي تعمل على الموقع الذي يستضيف HTML.

    العادة البيانات-* يتم استخدام السمات على نطاق واسع بواسطة أطر عمل الواجهة الأمامية ، مثل Bootstrap و Zurb Foundation ، أيضًا. والخبر السار هو أنك لا تحتاج بالضرورة إلى معرفة كيفية كتابة JavaScript إذا كنت تريد استخدام سمات سابقة للبيانات كجزء من إطار عمل ، حيث إنك تحتاج فقط إلى إضافتها إلى رمز HTML لبدء تشغيل وظيفة جافا سكريبت البرنامج المساعد.

    يضيف مقتطف الشفرة أدناه تلميح أدوات على اليسار إلى زر في Bootstrap من خلال الاستفادة من بيانات تبديل و ال التنسيب البيانات السمات المخصصة ، وتعيين القيم المناسبة لهم.

     

    استهداف البيانات-* سمات مع CSS

    على الرغم من أنه لا ينصح للاستخدام البيانات-* السمات فقط لأغراض التصميم ، يمكنك تحديد عناصر HTML التي ينتمون إليها بمساعدة محددات السمات العامة. إذا كنت ترغب في تحديد كل عنصر يحتوي على سمة محددة بادئة للبيانات ، استخدم بناء الجملة هذا في CSS الخاص بك:

     li [بيانات المستخدم] color: blue؛ 

    لاحظ أنه لن يتم عرض أسماء المستخدمين باللون الأزرق في مقتطف الشفرة أعلاه - بعد أن تكون جميع البيانات المخزنة في السمات المخصصة غير مرئية - ولكن أسماء الموظفين الموجودة في

  • العناصر (في المثال “فلان الفلاني” و “جين دو”).

    إذا كنت ترغب فقط في تحديد العناصر التي تأخذ فيها سمة بادئة البيانات قيمة معينة ، فهذه هي الصيغة المستخدمة:

     li [data-department = "IT"] border: solid blue 1px؛ 

    يمكنك استخدام جميع محددات سمة CSS الأكثر تعقيدًا ، مثل محدد Combinator combib[قيمة البيانات ~ = "فو"]) أو محدد البدل ([قيمة البيانات * = "فو"]) ، مع سمات بادئة البيانات كذلك.

    التمكن من البيانات-* سمات مع جافا سكريبت

    يمكنك الوصول إلى البيانات المخزنة في العرف البيانات-* سمات مع JavaScript باستخدام خاصية مجموعة البيانات أو jQuery's البيانات() طريقة.

    الفانيلا جافا سكريبت

    ال بيانات الملكية هي ملك لل HTMLElement واجهة ، وهذا يعني أنه يمكنك استخدامها على أي علامة HTML. ال بيانات خاصية يعطي الوصول إلى كل العرف البيانات-* سمات عنصر HTML المعطى. يتم إرجاع السمات ك DOMStringMap كائن يحتوي على إدخال واحد لكل البيانات-* صفة، عزا.

    في منطقتنا معلومات عنا مثال الصفحة يمكنك بسهولة التحقق من السمات المخصصة “جين دو” لديه باستخدام بيانات الملكية بالطريقة التالية:

     var jane = document.getElementById ("jane") ؛ console.log (jane.dataset)؛ // DOMStringMap user: "janedoe"، department: "IT" 

    يمكنك أن ترى ذلك في عاد DOMStringMap يعترض على البيانات- تتم إزالة البادئات من أسماء السمات (المستعمل بدلا من المستخدم البيانات, و  قسم، أقسام بدلا من ، قسم البيانات). تحتاج إلى استخدام السمات بنفس التنسيق إذا كنت تريد فقط الوصول إلى قيمة سمة معينة بادئة للبيانات (بدلاً من قائمة جميع السمات المخصصة كما في مقتطف الشفرة أعلاه).

    يمكنك استرداد قيمة محددة البيانات-* السمة كخاصية لل بيانات خاصية. كما ذكرت من قبل ، تحتاج إلى حذف البيانات- بادئة من اسم الخاصية ، لذلك إذا كنت ترغب في الوصول إلى قيمة جين المستخدم البيانات السمة ، يمكنك القيام بذلك بهذه الطريقة:

     var jane = document.getElementById ("jane") ؛ console.log (jane.dataset.user) // janedoe

    ومسج البيانات() طريقة

    ال البيانات() طريقة jQuery تجعل من الممكن الحصول على قيمة سمة بادئة البيانات. هنا لديك أيضا لتجاهل البيانات- بادئة من اسم السمة للوصول إليها بشكل صحيح. في مثالنا ، يمكنك عرض رسالة تنبيه باسم القسم فيها “جين” يعمل مع الكود التالي:

     $ ("# jane"). hover (function () var department = $ ("# jane"). data ("department")؛ alert (department)؛)؛

    ال البيانات() يجب استخدام الطريقة بعناية ، لأنها لا تعمل فقط كوسيلة للحصول على قيمة سمة بادئة البيانات ، ولكن أيضًا لإرفاق البيانات بعنصر DOM بالطريقة التالية:

     var town = $ ("# jane"). data ("town"، "New York")؛ 

    البيانات الإضافية التي ترفقها مع مسج البيانات() من الواضح أن الطريقة لن تظهر في كود HTML باعتبارها جديدة البيانات-* سمة ، لذلك إذا تم استخدام كلتا التقنيتين في نفس الوقت ، فإن عنصر HTML المعطى سوف يخزن مجموعتين من البيانات ، واحدة مع HTML والأخرى مع jQuery.

    في مثالنا “جين” حصلت على بيانات مخصصة جديدة ("مدينة") مع jQuery ، ولكن لن يظهر زوج قيمة المفتاح الجديد في HTML كجديد بلدة البيانات صفة، عزا. تخزين البيانات بطريقتين مختلفتين ليس أفضل ممارسة على أقل تقدير فقط استخدام واحدة من الطريقتين في وقت واحد.

    إمكانية الوصول و البيانات-* سمات

    كما البيانات التي عقدت في العرف البيانات-* السمات خاصة ، وقد لا تتمكن التقنيات المساعدة من الوصول إليها. إذا كنت تريد إبقاء المحتوى الخاص بك في متناول المستخدمين المعاقين ، فليس من المستحسن تخزين المحتوى الذي يمكن أن يكون مهمًا للمستخدمين بهذه الطريقة.