بعد مرور ما يقارب عشر سنوات على إصدار النسخة 3.0، وعشرين عامًا على تأسيس المشروع، تم إطلاق مكتبة جافا سكريبت jQuery 4.0. ووفقًا لموقع W3Techs، تُستخدم هذه المكتبة في 70.9% من أكثر 10 ملايين موقع إلكتروني زيارةً على الإنترنت. ويتم توزيع كود jQuery بموجب ترخيص MIT.
يتضمن إصدار jQuery 4.0 تغييرات تُخلّ بالتوافق مع الإصدارات السابقة، لكن المطورين يؤكدون لمعظم المستخدمين إمكانية الترقية إلى الإصدار الجديد بسلاسة مع الحد الأدنى من التعديلات على أكوادهم. ويمكن استخدام إضافة مخصصة لتسهيل عملية الترقية. تشمل التغييرات في التوافق مع الإصدارات السابقة إزالة الأكواد القديمة، وإزالة بعض المعاملات الداخلية غير الموثقة، وإيقاف بعض السلوكيات المعقدة، وإيقاف واجهات برمجة التطبيقات التي كانت قديمة. وقد أدى حذف واجهات برمجة التطبيقات والمتصفحات القديمة إلى تقليل حجم ملف gzip المضغوط الذي يحتوي على المكتبة بمقدار 3 كيلوبايت (يبلغ حجم النسخة المختصرة الآن 19.5 كيلوبايت، والنسخة الكاملة 27.5 كيلوبايت).
من بين التغييرات:
- Прекращена поддержка браузера IE 10 и более старых версий (поддержка IE 11 сохранена, но будет удалена в Query 5.0), а также других старых браузеров таких как Edge Legacy, Android Browser и Firefox до ветки 115.
- تم دمج دعم واجهة برمجة تطبيقات Trusted Types. صُممت هذه الواجهة لحماية البيانات من التلاعب بنموذج كائن المستند (DOM) الذي قد يؤدي إلى هجمات البرمجة النصية عبر المواقع (DOM XSS)، مثل معالجة بيانات المستخدم بشكل غير صحيح في كتل eval() أو إدراج ".innerHTML"، مما قد يسمح بتنفيذ كود JavaScript ضمن سياق صفحة معينة. يمكن الآن لأساليب jQuery قبول كود HTML على شكل كائنات TrustedHTML.
- تم تحويل كود jQuery لاستخدام وحدات ESM (ECMAScript Module) JavaScript ويمكن شحنه واستيراده كوحدة نمطية.
- تمت إزالة الدوال التالية، والتي كانت مصنفة سابقًا على أنها مهملة: jQuery.isArray، وjQuery.parseJSON، وjQuery.trim، وjQuery.type، وjQuery.now، وjQuery.isNumeric، وjQuery.isFunction، وjQuery.isWindow، وjQuery.camelCase، وjQuery.nodeName، وjQuery.cssNumber، وjQuery.cssProps، وjQuery.fx.interval. يُنصح باستخدام دوال JavaScript القياسية Array.isArray()، وJSON.parse()، وString.prototype.trim()، وDate.now() بدلاً منها.
- تمت إزالة الطرق الداخلية غير الموثقة لكائن المصفوفة - push و sort و splice.
- تم تعديل ترتيب معالجة أحداث تغيير التركيز ليتوافق مع مواصفات W3C - التشويش، التركيز للخارج، التركيز والتركيز للداخل.
- تم تقليل حجم النسخة النحيفة، التي لا تحتوي على وحدات ajax والتأثيرات، إلى 19.5 كيلوبايت عن طريق إيقاف تسليم الكائنات المؤجلة (يوصى باستخدام الوعود القياسية) وردود الاتصال.
المصدر: opennet.ru
