توحيد النماذج من جهة العميل
مقدمة
إنّ مفهوم النماذج ليس جديدًا في مجال تطوير الويب. في الواقع، كانت لغات/محرّكات النماذج من جهة الخادم، مثل Django (Python) وERB/Haml (Ruby) وSmarty (PHP)، متوفرة منذ فترة طويلة. ومع ذلك، شهدنا في العامَين الماضيَين ازديادًا كبيرًا في استخدام إطارات عمل MVC. تختلف هذه العروض عن بعضها قليلاً، ولكن تشترك معظمها في آلية مشتركة لعرض الطبقة التقديمية (المعروفة أيضًا باسم "عرض البيانات"): النماذج.
لنواجه الأمر. النماذج رائعة. يمكنك الاستفسار من حولك. حتى تعريفه يشعرك بالدفء والراحة:
"…لا يلزم إعادة إنشائه في كل مرة…" لا أعرف رأيك، ولكنّني أحب تجنُّب العمل الإضافي. لماذا لا تتوفّر منصة الويب بدعم أصلي لميزة يهتم بها المطوّرون بوضوح؟
مواصفات WhatWG HTML Templates هي الحلّ. ويحدِّد العنصر
<template> الجديد الذي يصف نهجًا عاديًا مستندًا إلى DOM
لإنشاء النماذج من جهة العميل. تسمح لك النماذج بتعريف أجزاء من الترميز التي يتم تحليلها كعلامات HTML، ولا يتم استخدامها عند تحميل الصفحة، ولكن يمكن إنشاء مثيل لها
لاحقًا في وقت التشغيل. على حد تعبير رافائيل وينشتاين:
وهي مكان لوضع مجموعة كبيرة من علامات HTML لا تريد أن يتدخل المتصفّح فيها مطلقًا لأي سبب.
رافائيل وينشتاين (مؤلف المواصفات)
ميزة "اكتشاف الأشياء"
لعرض <template>، أنشئ عنصر DOM وتأكّد من توفّر السمة .content:
function supportsTemplate() {
return 'content' in document.createElement('template');
}
if (supportsTemplate()) {
// Good to go!
} else {
// Use old templating techniques or libraries.
}
تحديد محتوى النموذج
يمثّل عنصر HTML