جافا سكريبت الواضحة«جافا سكريبت الواضحة» (بالإنجليزية: Unobtrusive JavaScript) هي تقنية ناشئة في لغة برمجة الجافا سكريبت، والمستخدمة على الشبكة العالمية. على الرغم من أن المصطلح لا يوجد له تعريف رسمي، فمفهوم مبادئه الأساسية يتضمن مايلي:
الحاجة إلى نموذج جديدلغة جافا سكريبت تاريخيا كان لها سمعة باعتبارها خرقاء، ولغة (hackish) غير صالحة لتطوير التطبيقات [3]، [4] هذا وقد تم إلى حد كبير نظرا للتطبيقات الغير متناسقة من اللغة نفسها[5] في مختلف برامج التصفح، والاستخدام الواسع النطاق لرموز القص واللصق. إن الخطأ وقت التشغيل شائع بشكل كبير (وذلك من الصعب تصحيحه) أن قله من المبرمجين حاولوا أن يثبتوها، فطالما أن للنصوص سلوكا أكثر أو أقل من الطريقة المفترضه [6] ؛ النصوص غالبا ماتفشل تماما في بعض المتصفحات. وظهر مؤخرا العديد من المتصفحات الموحدة وجافا سكريبت وأدوات تصحيح عالية الجودة كونت المنظمة، فمن الممكن تحجيم شفرة جافا سكريبت، وأصبح من الضروري ظهور واجهات (أجاكس). في حين كان الجافا سكريبت قد حجزت لمرّة واحده للمهام البسيطة والغير حرجة نسبيا مثل التحقق من صحة النموذج والطرافات الزخرفية، أما الآن فتستخدم لكتابة مصادر برامج كبيره ومعقده التي غالبا ما تكون جزءا من الوظائف الأساسية للموقع. أخطاء التشغيل وأي سلوك غير متوقع لم تعد عيوب بسيطه، هي عيوب قاتلة. «جافا سكريبت الواضحة» يمكن اعتبارها جزءا كبيرا من معاييرالويب؛ لشدة الطلب للتوافق عبر المتصفح دفع إلى تزايد التركيز على الترميز الموحد، وتزايد الطلب على تطبيقات الإنترنت الغنيةهو الذي يقود الحركة إلى ظهور جافا سكريبت مخفيه قويه. على المدى اخترع في عام 2002 من قبل (Stuart Langridge) فصل السلوك من الترميزيةتقليديا، جافا سكريبت وضعت في كثير من الأحيان متوافقة مع أتش تي أم أل لترميزية. على سبيل المثال، ما يلي هو تطبيق نموذجي للجافا سكريبت <input type="text" name="date" onchange="validateDate(this);"/>
ومع ذلك، فإن الغرض من العلامات هو وصف وثيقة الهيكل، وليس سلوكا برنامجيا.. الجمع بين اثنين يؤثر سلبا على موقع الصيانة لنفس السبب الذي يجمع بين المضمون والعرض: إذا كان الموقع يحتوي على المئات من حقول التاريخ من هذا القبيل، تضاف خاصيّة onchange الملائمة لكلّ واحد (وتعدّلهم لاحقا، في حاله الحاجة) يمكن أن تكون عملية عمل مركّزة. أن الحلول الخفيه هي لتسجيل معالجات الأحداث الضرورية برمجيا، بدلا من أن تكون مضمونه. وهذاشائع عن طريق تعيين خاصيهCSS محدده لجميع العناصر التي تحتاج إلى اتخاذ إجراءات من قبل البرنامج النصي: <input type="text" name="date">
المخطوطات يمكنها بعد ذلك البحث عن جميع عناصر المدخلات بالتاريخ، وإقامتها وفقا لذلك: باستخدام جافا سكريبت الأصلي:
window.onload = function(){ // ينتظر الصفحة للتحميل
var inputs = document.getElementsByTagName('input');
} (++for(var i=0,l=inputs.length;i<l;i
input = inputs[i];
if(input.name && input.name=='date')
input.onchange = function()}
validateDate(this);}
} } } };
function validateDate(){
/ / يعمل عندما يكون المحتوى من 'المدخلات' مع اسم 'تاريخ'متغيير.
{
النص التالي محدد لمكتبة موتولز:
window.addEvent('domready', function() {
$$('input[name=date]').addEvent('change', function(){
validateDate(this);
});
});
function validateDate(element){
/ / يعمل عندما يتغير محتوى 'عنصر'.
}
النص التالي هو محدد لمكتبة جي كويري:
$(document).ready(function(){ //ينتظر الصفحة للتحميل.
$('input[name=date]').bind('change', function (){
validateDate(this);
});
});
function validateDate(element){
/ /يعمل عندما يكون محتوى 'عنصر' قد تم تغييره.
}
لأن الغرض المقصود من السمة تحمل الأخطاءويمكن التحقيق من ذلك عن طريق التأكد من الوصلات والأشكال التي يمكن أن تحل بشكل صحيح وليس الاعتماد فقط على Ajax. في الجافا سكريبت، على سبيل المثال في تقديم نموذج يمكن إيقافه باستخدام ("return false"). إذا لم يكن هناك أي خطأ، كود (Ajax)سينفذ وتقديم النموذج سيهمل. إذا كانت أية مشاكل تحدث مع وكيل مستخدم Ajax أو إذا كان المستخدم ليس لديه جافا سكريبت، سيقدم النموذج وتكّون الصيغة التقليدية للعمل.[7] أفضل الممارساتعلى الرغم من أن جوهر الجافا سكريبت غير مزعجة هو مفهوم طبقة منفصلة السلوك، ودعاة النموذج سيشتركون عموما في عدد من المبادئ ذات الصلة، مثل:
انظر أيضاالمراجع
|