السلام عليكم ورحمة الله وبركاته
بنسمع كتير عن حاجة اسمها AJAX ياتري ده ايه؟ انا كنت سمعت عنه بس مكنتش اعرف ايه ده بس عملت سيرش علي النت في اكتر من موقع واللي فهمته قلت اكتبه لحضراتكم
يارب تستفيدوا منه ولو اي حد عنده اضافة ياريت ميبخلش علينا بيها
بداية هو اختصار asynchronous ********** and xml فهي تقنية تستخدم في تطبيقات الويب حيث تجعلها اكثر فاعليه واستجابة للمستخدم وهذه التقنية ليست جديدة وغير قائمة بذاتها فهي مجتمعة مع عدة تقينات منها html & java & css & xml
هذه التقنية ادخلت تطور كبير في مجال الويب حيث ساعدت في حل بعض المشاكل المتعلقة بالويب
طيب التقنية دي client side ولا server side ؟
طبعا اكيد بتقولوا يعني ايه الكلام ده بصوا معايا احنا عندنا لغات البرمجه بتتقسم لنوعين
اول نوع : client side
ودي لغات بيتم تطبيقها لدي المستخدم ومن هنا بالتالي يقدر يشوف الكود الخاص بيها زي ********** ومنها ايضـــــــــا AJAX
تاني نوع :server side
ودي لغات يتم تطبيقها لدي السيرفر حيث انها تقوم بارجاع صفحات بلغة html زي php
ابسط مثال عندنا في php اما بنطلب ملف معين بامتداد php من الويب سيرفر
هنا الويب سيرفر بيشوف الامتداد ومن هنا بيفهم انه لازم يبعته لمحرك php عشان يترجمه وهنا يقوم بتنفيذه وبعدين يبعته للمتصفح بلغة مفهومة وهي html
طيب ليه نستخدم التقينة دي وايه هي مميزاتها ؟
الاول عايزين نعمل مقارنة صغيرة كده بعد استخدام التقينة دي وقبل استخدامها
قبل استخدام هذه التقنيه
لما كنا بنطلب حاجة من السيرفر كان بيقوم بمعالجة البيانات وارسالها في صورة ملفات html للمتصفح وبالتالي هنا كان بيقوم بتحديث كامل للصفحة وبكده المستخدم يظل منتظر حتي يأيته الرد من السيرفر
بعد استخدام هذه التقنية
هنا الامر يختلف حيث يتم ارسال فقط طلب بالجزء المراد تحديثه وهذا عن طريق محرك الاجاكس وهو برنامج جافا سكريبت يقوم بارسال الطلبات للمخدم لحظة كتابتها وبالتالي ليس هناك حاجة لتحديث الصفحة بالكامل وبالتالي المستخدم في نفس الصفحة يواصل عمله والطلب يتم ارساله وتحديث الجزء المطلوب يتم كل ذلك يحدث دون ان يشعر المستخدم بعملية التحميل هذه
مثــــــــــال للتوضيح
نفترض ان لدينا صفحة ويب بها قائمةاسماء وانا اريد تسجيل اسمي بالتالي اقوم بكتابة الاسم وبعدين اضغط علي زر اضافة
طيب عايزين نشوف الفرق في كلا من
تطبيقات الويب التقليديه , تتم إرسال القيمه الجديده الى السيرفر , يقوم السيرفر بعمليه معالجه لهذه البيانات (تخزينها في قاعده البيانات مثلاً) , ويقوم السرفر بإرسال صفحه جديده تحتوي علي القائمة المعدله بالاسم الجديد المضاف وبالتالي يتم تحديث الصفحة كاملة هنا بالكامل علي الرغم من اننا اضفنا فقط اسم ومن هنا اضااعة كبيرة للوقت وبالتالي يعتبر مشكله في الصفحات ذات المحتوى الكبير مثل صور والفلاشات , حيث انه يتم اعاده تحميل كل الصفحه مع تعديل طفيف فيها ..
بينما في تطبيقات الويب القائمه على تقنيه الاجاكس تقوم تطبيقات الاجاكس بإرسال القيمه التي إضافها المستخدم الى السيرفر في الخلف "بحيث لايشعر المستخدم , حيث يتم فتح إتصال فرعي بالسيرفر ومن ثم تعديل الجزء المراد من الصفحه , ولكن هذا التعديل يتم عند المستخدم "من خلال سكربتات يشغلها المتصفح تقوم بتعديل الصفحه " . نلاحظ , انه بهذه الطريقه سوف يتم توفير كثير من مصادر الشبكه لان كميه البيانات التي سوف يتم تبادلها قليله (حيث انه لاداعي الان ان يقوم السيرفر بإعاده ارسال كامل الصفحه الى المتصفح) , وايضاً الوقت , وسوف تصبح الصفحه , اكثر إستجابه للمستخدم ..
وبالتالي من اهم مميزاتها
1- لتخفيف الضغط علي السيرفر وسهولة التعامل معه بان جعل المتصفح يساعده في بعض المهام والتعامل معه من خلال الاستعلامات
2- خفة التصفح بان جعل المتصفح لايعيد تحميل الصفحات كامله بل فقط الجزء المراد تحديثه
3- بالتالي توفير الوقت
4- قابلية النقل فهذه اللغة فيها ميزة رائعة جدا حيث يمكنك تطبيقها من بيئة لاخري دون اي تعديلات وترجع هذه الميزة لانها تستخدم الجافا وXML وهما مدعومتان من كل المتصفحات
5- امكانيه الربط بين العميل والسيرفر دون ان يشعر المستخدم
طيب ايه هي السلبيات ؟
بما ان الصفحة لا يعاد تحميلها من جديد فالبتالي يتم الغاء زر الرجوع للخلف كذلك لايمكن اضافة الصفحة التي يشاهدها للمفضلة وانما يضيف فقط الصفحة الرئيسية التي دخلها اول مرة
ملفات الجافا سكريبت التي يتم تحميلها مع صفحات التطيبق دون ان يعلم االمستخدم يمكن ان يتم استغلالها لاختراقه وبالفعل استخدمت الجافا سكربت من قبل في اعمال الاختراق والهاكرز
التاخير في الرد من قبل السيرفر حيث انها تختصر علي المستخدم اعادة تحميل الصفحه من جديد وبالتالي يجعل السمتخدم في حيرة لانه لا يجد تفاعل من النظام وهو انه لا يجد اشارة يفهم منها ان الطلب ارسل حيث انها تخفي عن المستخدم الاحساس بوجود ارسال واستقبال من قبل العميل والسيرفر
اتمني اكون قدمت معلومة مفيدة
سلام عليكم ورحمة الله وبركاته