الملخص : تميل مواقع الويب وتطبيقات الويب الحديثة إلى الاعتماد على JavaScript واسعة النطاق من جانب العميل لتوفير تفاعل غني. على وجه التحديد، إرجاع البيانات أو الحصول على استجابة من برنامج نصي من جانب الخادم (أو نظام البيانات) عبر طلب غير متزامن دون تحديث الصفحة. في هذه المقالة، ستتعلم كيف تجعل أطر عمل JavaScript إنشاء مواقع ويب وتطبيقات ويب تفاعلية وسريعة الاستجابة أسرع وأسهل.
مقدمة : JavaScript هي لغة برمجة نصية موجهة للكائنات تم استخدامها منذ فترة طويلة كواجهة برمجة نصية من جانب العميل المفضلة لتطبيقات متصفح الويب. تسمح JavaScript لمطوري الويب بالعمل برمجيًا مع الكائنات الموجودة على صفحات الويب، مما يوفر منصة للتعامل مع هذه الكائنات من لا شيء. عندما تم تقديم JavaScript لأول مرة، كان يتم استخدامه غالبًا لتوفير وظائف تافهة مثل الساعات ونص التمرير في شريط حالة المتصفح. ميزة أخرى شائعة هي "رابط التمرير"، الذي يغير لون النص أو صورة الخلفية عندما يمرر فأرة المستخدم فوق الكائن. ومع ذلك، في السنوات الأخيرة، جلب Ajax تفاعلات جديدة إلى برمجة الشبكات، وتطورت JavaScript وأصبحت أكثر فائدة. قبل Ajax، كانت أي معالجة من جانب الخادم أو الوصول إلى قاعدة البيانات تتطلب "تحديث" الصفحة بأكملها أو عرض صفحة جديدة بواسطة المتصفح. وهذا ليس بطيئًا ومحبطًا للمستخدمين فحسب، بل إنه يهدر النطاق الترددي والموارد أيضًا.
Ajax عبارة عن JavaScript وXML غير متزامنين، على الرغم من أن الرجوع إلى XML لم يعد صالحًا، إلا أن Ajax يمكنه الاستجابة للبيانات بتنسيقات أخرى متعددة إلى جانب XML، مثل JSON (JavaScript Object Notation). مبدأ عمل Ajax هو إرسال طلب HTTP إلى خادم الويب بطريقة غير متزامنة، دون تحديث أو عرض الصفحة بأكملها، فقط محتوى الاستجابة. بدلاً من ذلك، يستخدم المطورون عادةً عمليات DOM (نموذج كائن المستند) لتعديل أجزاء من صفحة الويب، وستعكس البيانات التي يتم إرجاعها بواسطة استجابة HTTP هذه التغييرات.
ما هو إطار جافا سكريبت؟
تعد JavaScript في حد ذاتها لغة قوية جدًا، ولا تحتاج إلى أي أطر عمل إضافية لإنشاء تطبيقات إنترنت غنية (RIA) مدعومة بها. ومع ذلك، فإن العمل باستخدام JavaScript ليس بالمهمة السهلة، ويرجع ذلك أساسًا إلى التعقيدات المختلفة التي تنشأ عند محاولة توفير دعم لمتصفحات متعددة. مثل HTML وCSS، تقوم المتصفحات المختلفة بتنفيذ JavaScript بشكل مختلف، لذا فإن التأكد من توافق كود JavaScript الخاص بك مع جميع المتصفحات قد يكون بمثابة كابوس.
إطار عمل أو مكتبة جافا سكريبت هي في الواقع مجموعة من الأدوات والوظائف التي تسهل إنتاج تعليمات برمجية جافا سكريبت متوافقة عبر المتصفحات. تم اختبار كل مكتبة بدقة على أحدث الإصدارات من العديد من متصفحات الويب الشائعة. لذلك، يمكنك أن تكون واثقًا من أنه باستخدام أي من هذه الأطر، سيكون RIA المستند إلى JavaScript متسقًا بشكل عام عبر المتصفحات والأنظمة الأساسية.
وبغض النظر عن مشكلات توافق المتصفح، فإن أطر عمل JavaScript تسهل كتابة التعليمات البرمجية للحصول على عناصر DOM واجتيازها ومعالجتها. فهي لا توفر فقط وظيفة سريعة للحصول على مرجع إلى عنصر DOM، ولكنها تسمح أيضًا بالتسلسل التعاقبي لوظائف اجتياز DOM للعثور على العناصر الأصلية أو الفرعية أو الشقيقة بأي عمق. أخيرًا، يوفر إطار العمل سلسلة من الوظائف التي تسهل التعامل مع هذه الكائنات، مما يسمح بتغيير محتواها أو إضافتها أو حذفها أو التعامل مع نمط الفئة للتأثير على مظهر العنصر.
ميزة أخرى مهمة لإطار عمل JavaScript هي دعمها الأفضل للتعامل مع الأحداث. نظرًا لاختلاف التطبيقات بين المتصفحات، يمكن أن يكون التعامل مع الأحداث عبر المتصفحات بمثابة كابوس. لذلك، غالبًا ما تقوم أطر عمل JavaScript بتغليف أحداث المتصفح وتوفير سلسلة من الوظائف المفيدة عبر المتصفحات للتعامل معها. توفر بعض الأطر أيضًا أحداثًا موحدة تمثل سلسلة رموز مفتاح لوحة المفاتيح (مثل مفتاح Esc ومفتاح Enter والمؤشر وما إلى ذلك).
كل هذه الميزات مفيدة جدًا وقد لعبت أطر عمل JavaScript دورًا مهمًا في تطبيقات Ajax الشهيرة الحديثة. كما هو الحال مع الجوانب الأخرى لجافا سكريبت، يميل كل متصفح ويب إلى دعم Ajax بطريقة مختلفة، وسيكون دعم Ajax لجميع المتصفحات يتطلب الكثير من العمل. تشتمل جميع أطر عمل JavaScript تقريبًا على شكل من أشكال مكتبة Ajax، وعادة ما توفر كائنات طلب واستجابة Ajax، وتحديث عناصر DOM بعد تقييم الاستجابات، والاستقصاء لطلب محدد.
الخصائص النموذجية لإطار عمل جافا سكريبت
الآن دعونا نلقي نظرة على بعض الميزات التي تمتلكها معظم أطر عمل JavaScript. تشمل هذه الميزات:
لشرح هذه الميزات بشكل أفضل، سأقدم مثالاً من واحد أو أكثر من أطر عمل JavaScript التالية: Prototype وjQuery وYUI وExtJS وMooTools. في حين أن تنفيذ وصياغة كل إطار مختلف، إلا أن المفاهيم هي نفسها بشكل عام. يحتوي كل إطار عمل على مرجع تفصيلي لواجهة برمجة التطبيقات (API) يمكنك الرجوع إليه عند تحديد كيفية استخدام ميزات تلك المكتبات المحددة.