ما هي المخاطر الملموسة لاستخدام سمات HTML المخصصة؟

StackOverflow https://stackoverflow.com/questions/1928369

  •  20-09-2019
  •  | 
  •  

سؤال

تحول هذا الموضوع إلى مناقشة ساخنة في المكتب، لذلك أنا مهتم بمعرفة رأيك.

نحن نعمل على تطبيق ويب يستهدف فقط بعض المتصفحات المحددة.تشتمل هذه المتصفحات حاليًا على إصدارات مختلفة من Opera 9 وMozilla 1.7.12.من المحتمل أيضًا أن ندعم في المستقبل Opera 10 والنكهات المختلفة لـ WebKit.ولكن من غير المرجح أن نضطر إلى التعامل مع أي إصدار من IE.

يعلن تطبيق الويب الخاص بنا أن HTML 4.0 صارم في نوع المستند الخاص به.

لقد اقترحت مؤخرًا كحل لمشكلة معينة استخدام السمات المخصصة في HTML.لقد اقترحت شيئًا يبدو كالتالي:

<span translationkey="someKey">...</span>

نظرًا لأن هذا ليس HTML 4 صالحًا، فإنه لم يلق قبولًا جيدًا مع رجال HTML لدينا، ودخلنا في جدال.

سؤالي هو هذا:ما هي مخاطر استخدام السمات المخصصة - إن وجدت -؟أعلم أنه لن يتم التحقق من صحة الصفحة، ولكن ألا تتجاهل جميع المتصفحات السمات التي لا تعرفها؟أو هل من المعقول أن تتغير بعض المتصفحات إلى "وضع المراوغات" وتعرض الصفحة كما لو كانت شيئًا آخر غير HTML 4.0 الصارم?

تحديث:

Hilited السؤال الفعلي المطروح.

هل كانت مفيدة؟

المحلول

لا توجد قيود/مخاطر على المتصفح.فقط جهاز التحقق من صحة W3 هو الذي ينبح، ولكن الكلاب التي تنبح لا تعض.

ال المواصفات W3 يقول ما يلي:

  • إذا واجه وكيل المستخدم سمة لا يتعرف عليها ، فيجب أن يتجاهل مواصفات السمة بأكملها (أي السمة وقيمتها).

سوف آي إي أيضا لا التقديم في وضع المراوغات أو هكذا قد يظن البعض.لن يفعل ذلك إلا مع أنواع المستندات غير الصالحة/الإجبارية، وليس على السمات غير الصالحة.

ومع ذلك، ضع في اعتبارك أن بعض مكتبات/أطر عمل Javascript ستضيف/تستخدم "بشكل غير مرئي" سمات HTML المخصصة في شجرة DOM، كما تفعل العديد من مكونات jQuery الإضافية.بهذه الطريقة قد تخاطر بحدوث تصادمات في السمات لأنها تستخدم "عن طريق الصدفة" سمة تحمل نفس الاسم الذي تستخدمه لأغراضك الخاصة.ومن المؤسف أن هذا غالبًا ما يكون سيئًا أو حتى غير موثق على الإطلاق.

نصائح أخرى

يسمح HTML 5 بسمات مخصصة باستخدام البادئة "data-"، انظر http://ejohn.org/blog/html-5-data-attributes/

إذا كان الهدف هو الحفاظ على html4.0 صالحًا وصارمًا، فلا يهم سبب رغبتك في وضع سمات مخصصة، فأنت تخالف الهدف.

أعتقد أن السؤال الذي يجب عليك طرحه هو لماذا تحتاج إلى كسر 4.0 الصارم للحصول على الوظيفة التي تريدها:أي شيء يمكنك استخدامه في سمة مخصصة لك، يمكنك استخدامه في سمة موجودة:

<span translationkey="someKey">...</span>

ممكن ان يكون:

<span class="Translationkey@someKey">...</span>

ستكون هناك بعض الدورات الإضافية لتحليل جميع معلومات الفصل، ولكن طالما أنك لم تضع أي معلومات CSS في هذا الفصل، فلن يغير العرض، ولن يضعك في وضع المراوغات، ولن يحصل على كنت في معارك في العمل.

أم أنه من الممكن أن تتغير بعض المتصفحات إلى "وضع المراوغات" وتعرض الصفحة كما لو كانت شيئًا آخر غير HTML 4.0 الصارم؟

لا، لن تؤدي السمات السيئة إلى فرض تغيير في وضع العرض.

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

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top