تاريخ وتراث jQuery

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

ولكن في السنوات الأخيرة، تآكلت مكانتها كأداة رئيسية لتطوير الويب. دعونا نلقي نظرة على سبب شهرة jQuery ولماذا أصبحت قديمة الطراز، وكذلك في الحالات التي لا يزال من المستحسن استخدامها لإنشاء مواقع ويب حديثة.

تاريخ موجز لـ jQuery

جون ريسيج (جون ريسيج) أنشأ النسخة الأولى من المكتبة في عام 2005، و نشرت في عام 2006-م، في حدث يسمى BarCampNYC. على الموقع الرسمي لجيكويري كتب المؤلف:

jQuery هي مكتبة جافا سكريبت تعتمد على الشعار: يجب أن تكون جافا سكريبت ممتعة في البرمجة. تأخذ jQuery المهام الشائعة والمتكررة، وتزيل كل العلامات غير الضرورية، وتجعلها قصيرة وأنيقة ونظيفة.

لدى jQuery ميزتان رئيسيتان. الأول هو واجهة برمجة تطبيقات ملائمة لمعالجة صفحات الويب. وعلى وجه الخصوص، فهو يوفر طرقًا قوية لاختيار العناصر. لا يمكنك التحديد حسب المعرف أو الفئة فحسب، بل يتيح لك jQuery كتابة تعبيرات معقدة، على سبيل المثال، تحديد العناصر بناءً على علاقاتها مع العناصر الأخرى:

// Select every item within the list of people within the contacts element
$('#contacts ul.people li');

مع مرور الوقت، أصبحت آلية الاختيار مكتبة منفصلة همسة.

الميزة الثانية للمكتبة هي أنها تستخلص الاختلافات بين المتصفحات. في تلك السنوات، كان من الصعب كتابة تعليمات برمجية يمكن أن تعمل بشكل موثوق في جميع المتصفحات.

كان الافتقار إلى التوحيد يعني أن المطورين بحاجة إلى مراعاة الاختلافات العديدة بين المتصفحات وحالات الحافة. نلقي نظرة على كود مصدر jQuery المبكر هذا وابحث عن jQuery.browser. هنا مثال واحد:

// 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 تعتقد ذلك 74% من المواقع اليوم تستخدم jQuery.

أصبح التحكم في تطوير jQuery أكثر رسمية أيضًا. في عام 2011 الفريق تم إنشاء لوحة jQuery. وفي عام 2012 مجلس مسج تحولت إلى مؤسسة مسج.

في عام 2015، اندمجت مؤسسة jQuery مع مؤسسة Dojo، لإنشاء مؤسسة JS، والتي اندمجت بعد ذلك مع مؤسسة Node.js لتصبح 2019-م لخلق مؤسسة OpenJS، حيث كان jQuery واحدًا من "مشاريع اختراق".

الظروف المتغيرة

ومع ذلك، في السنوات الأخيرة jQuery فقدت شعبيتها. جيثب إزالة المكتبة من الواجهة الأمامية لموقعي. بوتستراب v5 تخلص من مسجلأنه له"أكبر تبعية للعميل لجافا سكريبت العادية"(حجمه حاليًا 30 كيلوبايت، مصغر ومعبأ). أدت العديد من الاتجاهات في تطوير الويب إلى إضعاف مكانة jQuery كأداة أساسية.

المتصفحات

لعدد من الأسباب، أصبحت الاختلافات والقيود في المتصفح أقل أهمية. أولا، تحسنت عملية التوحيد القياسي. يعمل مطورو المتصفحات الرئيسيون (Apple وGoogle وMicrosoft وMozilla) معًا للتطوير معايير الويب ضمن مجموعة عمل تكنولوجيا تطبيقات النص التشعبي على الويب.
على الرغم من أن المتصفحات لا تزال تختلف عن بعضها البعض في عدد من الطرق المهمة، إلا أن البائعين لديهم على الأقل وسيلة للبحث وإنشاء قاعدة بيانات مشتركة بدلاً من حرب دائمة معاً. وبناءً على ذلك، اكتسبت واجهات برمجة تطبيقات المتصفح إمكانات جديدة. على سبيل المثال، جلب API قادر على استبدال وظائف Ajax من jQuery:

// 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);
    });

طرق querySelector и الاستعلام منتقيات jQuery مكررة:

// jQuery
const fooDivs = $('.foo div');

// native
const fooDivs = document.querySelectorAll('.foo div');

يمكنك الآن التعامل مع فئات العناصر باستخدام قائمة الطبقة:

// jQuery
$('#warning').toggleClass('visible');

// native
document.querySelector('#warning').classList.toggle('visible');

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

يؤدي استخدام الميزات الأصلية إلى تحسين أداء الصفحة. كثير تأثيرات الرسوم المتحركة من مسج الآن يمكنك التنفيذ أكثر فعالية باستخدام CSS.

السبب الثاني هو أن المتصفحات يتم تحديثها بشكل أسرع بكثير من ذي قبل. معظمهم يستخدمون استراتيجية التجديد "دائم الخضرة".باستثناء Apple Safari. يمكن تحديثها في الخلفية دون مشاركة المستخدم ولا ترتبط بتحديثات نظام التشغيل.

وهذا يعني أن ميزات المتصفح الجديدة وإصلاحات الأخطاء يتم توزيعها بشكل أسرع بكثير، ولا يتعين على المطورين الانتظار حتى يتم نشرها هل يمكنني استخدام سوف تصل إلى مستوى مقبول. ويمكنهم استخدام الميزات الجديدة وواجهات برمجة التطبيقات بثقة دون تنزيل jQuery أو polyfills.

السبب الثالث هو أن Internet Explorer يقترب من حالة عدم الأهمية الكاملة. لقد كان IE منذ فترة طويلة مصدر لعنة لتطوير الويب في جميع أنحاء العالم. كانت أخطاءه منتشرة على نطاق واسع، ولأن IE سيطر على العقد الأول من القرن الحادي والعشرين ولم يستخدم استراتيجية التحديث الدائم، فإن الإصدارات الأقدم لا تزال شائعة.

في عام 2016، قامت Microsoft بتسريع عملية إيقاف تشغيل IE، التوقف عن الدعم الإصدار العاشر والإصدارات السابقة، مما يحد من الدعم لـ IE 11. وعلى نحو متزايد، يتمتع مطورو الويب برفاهية تجاهل التوافق مع IE.

حتى jQuery توقف عن دعم IE 8 وما دونه بدءًا من الإصدار 2.0، نشرت عام 2013. وعلى الرغم من أنه في بعض الحالات، لا يزال دعم IE مطلوبا، على سبيل المثال، في المواقع القديمة، فإن هذه المواقف تنشأ أقل وأقل في كثير من الأحيان.

أطر جديدة

منذ ظهور jQuery، تم إنشاء العديد من الأطر، بما في ذلك أطر العمل الحديثة رد فعل, زاوي и رأي. لديهم ميزتان مهمتان مقارنة بـ jQuery.

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

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

الميزة الثانية هي أن الأطر الحديثة تلتزم بالنموذج التعريفي، حيث يصف المطور الشكل الذي يجب أن تبدو عليه الواجهة ويترك الأمر لإطار العمل لإجراء جميع التغييرات اللازمة لتحقيق ما هو مرغوب فيه. يتعارض هذا الأسلوب مع النهج الحتمي الذي يميز كود jQuery.

في jQuery، تقوم بتدوين الخطوات بوضوح لإجراء أي تغييرات. وفي إطار تعريفي تقول: "وفقًا لهذه البيانات، يجب أن تبدو الواجهة هكذا". وهذا يمكن أن يجعل كتابة تعليمات برمجية خالية من الأخطاء أسهل كثيرًا.

اعتمد المطورون أساليب جديدة لتطوير مواقع الويب، ولهذا السبب انخفضت شعبية jQuery.

متى يجب استخدام jQuery؟

اذن متى ينبغي استخدام مسج؟

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

لقد كنت في مثل هذا الموقف، عندما أحاول إجراء أي تغيير، يبدو الأمر وكأنه مهمة صعبة. لا يمكنك التأكد من أنك لن تكسر أي شيء لأن محددات jQuery تعتمد على بنية HTML التي أنشأها الخادم.

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

حتى لو كنت بحاجة إلى شيء أكثر قوة، سأبحث عن مكتبة متخصصة، على سبيل المثال. أكسيوس لأياكس أو Animate.css للرسوم المتحركة. سيكون هذا أسهل من تحميل كل jQuery لوظيفة صغيرة.

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

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

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

يمكنك أيضًا استخدام هذه المكتبة إذا كنت بحاجة إلى دعم الإصدارات الأقدم من IE. بعد ذلك سوف يخدمك jQuery كما كان يفعل في الأيام التي كان فيها متصفح IE هو المتصفح الأكثر شعبية.

التنقيب

لن تختفي jQuery في أي وقت قريب. هي تتطور بنشاط، ويفضل العديد من المطورين استخدام واجهة برمجة التطبيقات (API) الخاصة به، حتى في حالة توفر الطرق الأصلية. ساعدت المكتبة جيلًا كاملاً من المطورين في إنشاء مواقع ويب تعمل على أي متصفح. على الرغم من أنه تم استبدالها بعدة طرق بمكتبات وأطر عمل ونماذج جديدة، فقد لعبت jQuery دورًا إيجابيًا للغاية في إنشاء الويب الحديث.

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

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

المصدر: www.habr.com

إضافة تعليق