ما هي AJAX ؟
مصطلح AJAX هو إختصار لعبارة : Asynchronous JavaScript and XML أو ما يمكن ترجمته الجافا سكربت و الـ XML الغير تزامنية ! في حقيقة الأمر AJAX ليست تقنية جديدة ، بمعنى أنها لا تستخدم شيء جديد بإختراع جديد ، و لكنها تعتبر إستخدام ذكي لخصائص معينة موجودة مسبقاً في تقنيات معروفة مثل Javas Script و XML ! إذا ما الجديد الذي أتت به هذه التقنية ؟ كما أسلفنا ذكراً هذه التقنية (إن صح تسميتها بتقنية) هي عبارة عن إستخدام متكامل لخصائص لغتين من اللغات المستخدمة في تطوير المواقع ، الجافا سكربت و الـ XML . ببساطة تتيح AJAX عملية إرسال البيانات للسيرفر و إستقبالها منه دون أن يكون هناك إعادة تحميل للصفحة ، على سبيل المثال ، لأن موقع قاعة المطورين حالياً لا يستخدم هذه التقنية ، فإنك عند إستخدامك مربع البحث بكتابة عبارة لتبحث عنها و النقر على زر بحث فإن صفحة جديدة كليا ستظهر لك فيها نتائج البحث ، عن طريق ajax بإمكاننا توفير عملية إعادة التحميل لكامل الصفحة ليكون الجزء المتغير فقط هو جزء نتائج البحث ، هذا على سبيل المثال ، و على سبيل المثال أيضاً ، عند تسجيلك في خدمة البريد الإلكتروني من أي شركة و كتابتك لإسم مستخدم محجوز مسبقاً فإنك لا تريد من الموقع أن يرسل الطلب كاملاً ثم يعيد تحميل نموذج الإشتراك و يشير اليك بمكان الخطأ ، أنت تريد فقط أن تبقى الصفحة على ما هي عليها و تظهر رسالة تخبرك بمكان هذ الخطأ ! هذا ما تتيحه لك AJAX ، تفاعل كامل بين جهاز الخادم (السيرفر) و المستخدم النهائي دون وجود ضرورة لإعادة تحميل عناصر الصفحة بأكملها للإنتقال إلى نتيجة الطلب الذي تم ارساله !
نظرة تاريخية على AJAX
لا بد أنك أستوعبت في الجزء السابق أهمية هذه التقنية ، في الحقيقية هذا المصطلح حديث جداً ، ظهرت هذه التقنية في أوائل عام 2005 ، و لكن هذه التقنية كانت نتيجة مبادرات و جهود سابقة و إنجازات سابقة قامت بها شركة مايكروسوفت عن طريق ما يعرف بالـ Remote Scripting أو تنفيذ البريمجات عن بعد ، تقنيات مايكروسوفت في هذا المجال توالت خاصة مع جهود العديد من المطورين في مجموعات مايكروسوفت الإخبارية بتطوير هذه التقنية ، منذ عام 1998 منذ إطلاق الـ Remote Scripting كانت لمايكروسوفت و للعديد من المطورين جهود كبيرة ، منها تقنية الـ Callback في ASP .NET و منها الإضافة المهمة جداً في الـ XML و التي كانت مفتاح ظهور تقنية AJAX ، هذه الإضافة هي خاصية XMLHttpRequest التي أضيفت لمتصفح إنترنت إكسبلورر ، ثم بعد ذلك تلته بقية المتصفحات ، هذه الخاصية و بإستخدام دوال المناداة في الجافا سكربت شكلت بداية تقنية AJAX .
المزايا و المساوئ
على الرغم من أن تقنية AJAX من الوهلة الأولى تبدو مفيدة جدا ، الا ان لها بعض المساوئ التي قد تجعل البعض يمتنع عن إستخدامها ، سنبدأ بذكر مزايا هذه التقنية أولاً :
1- التفاعلية :
لا شك في أن إرسال البيانات من و إلى السيرفر بطريقة سريعة تزيد من التفاعلية و الديناميكية للتطبيقات ، هذا الأمر جعل التفاعلية من أهم خصائص AJAX ، تسمح هذه الميزه للمستخدمين بتوفير الكثير من وقتهم ، فبدلاً من إعادة تحميل صفحة نموذح الإشتراك في خدمة البريد الإلكتروني بكامل الصور و النصوص اذا كان هناك خطأ في أحد الحقول سيتم فقط إظهار رسالة في مكان الخطأ !
2- قابلية النقل :
هذه ميزة رائعة ايضاً إفتقرت لها تقنيات الـ Remote Scripting من مايكروسوفت ، بإمكانك تشغيل و نقل الجزئيات المكتوب بإستخدام تقنية AJAX من تطبيق الى آخر و من بيئة إلى أخرى و ستعمل دون أي تعديلات ، السبب في ذلك يعود الى ان هذه التقنية تستخدم كما أسلفنا ذكراً الجافا سكربت و الـ XML و هما تقنيتان مدعومتان من كافة المتصفحات و في كافة منصات التشغيل !
المساوئ
1- التقليل من قابلية الإستخدام
رائع ما تقوم به هذه التقنية من إختصار للوقت و تقديم المزيد من التفاعلية في التطبيقات ، و لكن قد تكون هذه النقطة سلاح ذو حدين ، فعلى سبيل المثال عند النقر على زر "الخلف" في المتصفح بعد إرسال طلب بتقنية AJAX سيتوقع المستخدم انه سيعود على وضع الصفحه قبل ارسال الطلب ، ولكن يتفاجأ انه يعود الى الصفحة التي تسبق الصفحة التي الصفحة التي يتوقعها ، بمعنى أن هذه الصفحات و الأجزاء المتغيرة بواسطة النداءات من هذه التقنية لا تؤثر في زر الخلف و تضاف هذه الصفحات في مسلسل الصفحات التي إستعرضتها لكي تعود اليها ! هذا الأمر قد يجعل الموقع غير قابل للإستخدام بالأسلوب الأمثل !
2- التأخر في الرد من السيرفر
لأن تقنية AJAX ستختصر على المستخدم مسألة إعادة تحميل الصفحة من جديد ، فإن حدوث أي تأخير في الرد من قبل السيرفر للطلب الذي أرسل عن طريق تقنية AJAX سيجعل المستخدم في حيرة من أمره ، فهو لا يرى أي تفاعل من النظام ، نقصد هنا التفاعل الذي إعتاد على رؤيته و هو أن الصفحة يعاد تحميلها في إشارة يفهم منها المستخدم بأن المتصفح قد أرسل طلبه و هو على وشك إستقبال الرد من السيرفر ، ببساطة نستطيع أن نقول AJAX تخفي عن المستخدم أمر مهم جداً وهو الأحساس بوجود إرسال و إستقبال بين العميل و السيرفر !
3- دعم الجافا سكربت و الـ Active X
رغم أن هذه قد لا تعتبر مشكلة في أيامنا هذه مع تطور المتصفحات ، الا ان بعض الأجهزة القديمة و الأجهزة الكفية قد لا يتوفر فيها دعم متكامل للجافا سكربت و الـ Active X ، إن وجود دعم لهاتين التقنيتين أمر مهم جدا لكي يستفيد العميل النهائي من الموقع المصمم بتقنية AJAX ، الجافا سكربت لأن الطلب أصلاً يرسل من خلال الجافا سكربت ، اما الـ Active X في متصفحات الإنترنت إكسبلورر 6 و ما سبقها فهي لأن الـ XMLHttpRequest تأتي في المتصفح ضمن حزمة الـ Active X .
في هذه المقالة المختصرة آمل أن أكون قد وفقت في تسليط الضوء على تقنية من أهم التقنيات الحديثة و المتميزة في مجال تطوير تطبيقات الويب