التاريخ مسج والتراث


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

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

نبذة تاريخية عن مسج


قام جون ريزيج بإنشاء النسخة الأولى من المكتبة في عام 2005 ، ونشرها في عام 2006 في حدث يسمى BarCampNYC. على موقع jQuery الرسمي ، كتب المؤلف:

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

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

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

بمرور الوقت ، تطور محرك التحديد إلى مكتبة Sizzle منفصلة.

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

يعني عدم وجود توحيد أن المطورين بحاجة إلى النظر في العديد من الاختلافات بين المتصفحات وحالات الحدود. ألقِ نظرة على شفرة مصدر 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 .

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

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

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


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

المتصفحات


لعدة أسباب ، أصبحت الاختلافات والقيود على المتصفح أقل أهمية. أولاً ، تحسن التقييس. يعمل مطورو المتصفح الرئيسيون (Apple و Google و Microsoft و Mozilla) بشكل مشترك على تطوير معايير الويب كجزء من مجموعة عمل تقنية النص التشعبي للويب .
على الرغم من أن المتصفحات لا تزال تختلف عن بعضها البعض في عدد من الجوانب المهمة ، إلا أن البائعين لديهم على الأقل وسيلة للبحث وإنشاء قاعدة مشتركة بدلاً من حرب دائمة مع بعضهم البعض. وفقًا لذلك ، اكتسبت واجهات برمجة تطبيقات المتصفح ميزات جديدة. على سبيل المثال ، يمكن لـ Fetch 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 و querySelectorAll بتكرار محددات من jQuery:

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

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

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

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

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

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

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

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

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

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

أطر جديدة


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

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

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

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

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

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

متى تستخدم مسج؟


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

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

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

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

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

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

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

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

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

انظر الى المستقبل


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

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

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

Source: https://habr.com/ru/post/ar468169/


All Articles