مسج -
ولكن في السنوات الأخيرة، تآكلت مكانتها كأداة رئيسية لتطوير الويب. دعونا نلقي نظرة على سبب شهرة jQuery ولماذا أصبحت قديمة الطراز، وكذلك في الحالات التي لا يزال من المستحسن استخدامها لإنشاء مواقع ويب حديثة.
تاريخ موجز لـ jQuery
جون ريسيج (
jQuery هي مكتبة جافا سكريبت تعتمد على الشعار: يجب أن تكون جافا سكريبت ممتعة في البرمجة. تأخذ jQuery المهام الشائعة والمتكررة، وتزيل كل العلامات غير الضرورية، وتجعلها قصيرة وأنيقة ونظيفة.
لدى jQuery ميزتان رئيسيتان. الأول هو واجهة برمجة تطبيقات ملائمة لمعالجة صفحات الويب. وعلى وجه الخصوص، فهو يوفر طرقًا قوية لاختيار العناصر. لا يمكنك التحديد حسب المعرف أو الفئة فحسب، بل يتيح لك jQuery كتابة تعبيرات معقدة، على سبيل المثال، تحديد العناصر بناءً على علاقاتها مع العناصر الأخرى:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
مع مرور الوقت، أصبحت آلية الاختيار مكتبة منفصلة
الميزة الثانية للمكتبة هي أنها تستخلص الاختلافات بين المتصفحات. في تلك السنوات، كان من الصعب كتابة تعليمات برمجية يمكن أن تعمل بشكل موثوق في جميع المتصفحات.
كان الافتقار إلى التوحيد يعني أن المطورين بحاجة إلى مراعاة الاختلافات العديدة بين المتصفحات وحالات الحافة. نلقي نظرة على
// If Mozilla is used
if ( jQuery.browser == "mozilla" || jQuery.browser == "opera" ) {
// Use the handy event callback
jQuery.event.add( document, "DOMContentLoaded", jQuery.ready );
// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
} else if ( jQuery.browser == "msie" ) {
// Only works if you document.write() it
document.write("<scr" + "ipt id=__ie_init defer=true " +
"src=javascript:void(0)></script>");
// Use the defer script hack
var script = document.getElementById("__ie_init");
script.onreadystatechange = function() {
if ( this.readyState == "complete" )
jQuery.ready();
};
// Clear from memory
script = null;
// If Safari is used
} else if ( jQuery.browser == "safari" ) {
// Continually check to see if the document.readyState is valid
jQuery.safariTimer = setInterval(function(){
// loaded and complete are both valid states
if ( document.readyState == "loaded" ||
document.readyState == "complete" ) {
// If either one are found, remove the timer
clearInterval( jQuery.safariTimer );
jQuery.safariTimer = null;
// and execute any waiting functions
jQuery.ready();
}
}, 10);
}
وبفضل jQuery، يمكن للمطورين نقل المخاوف بشأن كل هذه المخاطر إلى أكتاف الفريق الذي يقوم بتطوير المكتبة.
لاحقًا، سهّلت jQuery تنفيذ تقنيات أكثر تعقيدًا مثل الرسوم المتحركة وAjax. أصبحت المكتبة بشكل فعال تبعية قياسية لمواقع الويب. وهي اليوم تشغل حصة كبيرة من الإنترنت. W3Techs تعتقد ذلك
أصبح التحكم في تطوير jQuery أكثر رسمية أيضًا. في عام 2011 الفريق
في عام 2015، اندمجت مؤسسة jQuery مع مؤسسة Dojo،
الظروف المتغيرة
ومع ذلك، في السنوات الأخيرة jQuery
المتصفحات
لعدد من الأسباب، أصبحت الاختلافات والقيود في المتصفح أقل أهمية. أولا، تحسنت عملية التوحيد القياسي. يعمل مطورو المتصفحات الرئيسيون (Apple وGoogle وMicrosoft وMozilla) معًا للتطوير
على الرغم من أن المتصفحات لا تزال تختلف عن بعضها البعض في عدد من الطرق المهمة، إلا أن البائعين لديهم على الأقل وسيلة للبحث وإنشاء قاعدة بيانات مشتركة بدلاً من
// jQuery
$.getJSON('https://api.com/songs.json')
.done(function (songs) {
console.log(songs);
})
// native
fetch('https://api.com/songs.json')
.then(function (response) {
return response.json();
})
.then(function (songs) {
console.log(songs);
});
طرق
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
يمكنك الآن التعامل مع فئات العناصر باستخدام
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
الموقع
يؤدي استخدام الميزات الأصلية إلى تحسين أداء الصفحة. كثير
السبب الثاني هو أن المتصفحات يتم تحديثها بشكل أسرع بكثير من ذي قبل. معظمهم يستخدمون
وهذا يعني أن ميزات المتصفح الجديدة وإصلاحات الأخطاء يتم توزيعها بشكل أسرع بكثير، ولا يتعين على المطورين الانتظار حتى يتم نشرها
السبب الثالث هو أن Internet Explorer يقترب من حالة عدم الأهمية الكاملة. لقد كان IE منذ فترة طويلة مصدر لعنة لتطوير الويب في جميع أنحاء العالم. كانت أخطاءه منتشرة على نطاق واسع، ولأن IE سيطر على العقد الأول من القرن الحادي والعشرين ولم يستخدم استراتيجية التحديث الدائم، فإن الإصدارات الأقدم لا تزال شائعة.
في عام 2016، قامت Microsoft بتسريع عملية إيقاف تشغيل IE،
حتى jQuery توقف عن دعم IE 8 وما دونه بدءًا من
أطر جديدة
منذ ظهور jQuery، تم إنشاء العديد من الأطر، بما في ذلك أطر العمل الحديثة
أولاً، تجعل من السهل تقسيم واجهة المستخدم إلى مكونات. تم تصميم الإطارات للتعامل مع عرض الصفحة وتحديثها. وعادة ما يتم استخدام jQuery للتحديث فقط، تاركًا مهمة توفير الصفحة الأولية للخادم.
من ناحية أخرى، تتيح لك مكونات React وAngular وVue ربط HTML والأكواد وحتى CSS بإحكام. تمامًا كما نقوم بتقسيم قاعدة التعليمات البرمجية إلى العديد من الوظائف والفئات المستقلة، فإن القدرة على تقسيم الواجهة إلى مكونات قابلة لإعادة الاستخدام تجعل من السهل إنشاء المواقع المعقدة وصيانتها.
الميزة الثانية هي أن الأطر الحديثة تلتزم بالنموذج التعريفي، حيث يصف المطور الشكل الذي يجب أن تبدو عليه الواجهة ويترك الأمر لإطار العمل لإجراء جميع التغييرات اللازمة لتحقيق ما هو مرغوب فيه. يتعارض هذا الأسلوب مع النهج الحتمي الذي يميز كود jQuery.
في jQuery، تقوم بتدوين الخطوات بوضوح لإجراء أي تغييرات. وفي إطار تعريفي تقول: "وفقًا لهذه البيانات، يجب أن تبدو الواجهة هكذا". وهذا يمكن أن يجعل كتابة تعليمات برمجية خالية من الأخطاء أسهل كثيرًا.
اعتمد المطورون أساليب جديدة لتطوير مواقع الويب، ولهذا السبب انخفضت شعبية jQuery.
متى يجب استخدام jQuery؟
اذن متى ينبغي استخدام مسج؟
إذا زاد تعقيد المشروع، فمن الأفضل أن تبدأ بمكتبة أو إطار عمل آخر يسمح لك بإدارة التعقيد بشكل هادف. على سبيل المثال، قم بتقسيم الواجهة إلى مكونات. قد يبدو استخدام jQuery في مثل هذه المواقع أمرًا جيدًا في البداية، ولكنه سيؤدي سريعًا إلى ظهور كود السباغيتي حيث لا تكون متأكدًا من الجزء الذي يؤثر على أي جزء من الصفحة.
لقد كنت في مثل هذا الموقف، عندما أحاول إجراء أي تغيير، يبدو الأمر وكأنه مهمة صعبة. لا يمكنك التأكد من أنك لن تكسر أي شيء لأن محددات jQuery تعتمد على بنية HTML التي أنشأها الخادم.
وفي الطرف الآخر من المقياس توجد مواقع بسيطة لا تتطلب سوى القليل من التفاعل أو المحتوى الديناميكي. لن أستخدم jQuery افتراضيًا في هذه الحالات أيضًا، لأن هناك الكثير مما يمكنك فعله باستخدام واجهات برمجة التطبيقات الأصلية.
حتى لو كنت بحاجة إلى شيء أكثر قوة، سأبحث عن مكتبة متخصصة، على سبيل المثال.
أعتقد أن أفضل سبب لاستخدام jQuery هو أنه يوفر وظائف شاملة للواجهة الأمامية لموقع الويب. بدلاً من تعلم مجموعة متنوعة من واجهات برمجة التطبيقات الأصلية أو المكتبات المتخصصة، يمكنك قراءة وثائق jQuery فقط وتصبح منتجًا على الفور.
النهج الحتمي لا يتسع بشكل جيد، ولكن تعلمه أسهل من النهج التعريفي للمكتبات الأخرى. بالنسبة لموقع ذو إمكانيات محدودة بشكل واضح، من الأفضل استخدام jQuery والعمل بهدوء: لا تتطلب المكتبة تجميعًا أو تجميعًا معقدًا.
بالإضافة إلى ذلك، يعد jQuery جيدًا إذا كنت واثقًا من أن موقعك لن يصبح معقدًا بمرور الوقت، وإذا كنت لا تهتم بالوظائف الأصلية، والتي ستتطلب بالتأكيد كتابة تعليمات برمجية أكثر من jQuery.
يمكنك أيضًا استخدام هذه المكتبة إذا كنت بحاجة إلى دعم الإصدارات الأقدم من IE. بعد ذلك سوف يخدمك jQuery كما كان يفعل في الأيام التي كان فيها متصفح IE هو المتصفح الأكثر شعبية.
التنقيب
لن تختفي jQuery في أي وقت قريب. هي
ما لم تتغير وظائف jQuery بشكل كبير، فمن المحتمل أن يستمر استخدام المكتبة في الانخفاض ببطء ولكن بثبات خلال السنوات القليلة القادمة. تميل مواقع الويب الجديدة إلى إنشاء أطر عمل أكثر حداثة منذ البداية، كما أصبحت حالات الاستخدام المناسبة لـ jQuery نادرة بشكل متزايد.
بعض الأشخاص لا يحبون المعدل الذي تصبح فيه أدوات تطوير الويب قديمة، ولكن بالنسبة لي، فهذا دليل على التقدم السريع. لقد سمح لنا jQuery بالقيام بأشياء كثيرة بشكل أفضل. وينطبق الشيء نفسه على خلفائها.
المصدر: www.habr.com