مقدمة
في الدرس السابق تعرفنا على الوحدات (Modules)، وعرفنا كيف يمكن تقسيم المشروع إلى ملفات مستقلة وإعادة استخدام الكود بينها.
لكن في تطبيقات JavaScript توجد بعض العمليات التي قد تحتاج إلى وقت حتى تكتمل، مثل جلب البيانات من الإنترنت أو قراءة البيانات من الخادم.
إذا انتظر البرنامج هذه العمليات بطريقة عادية، فقد يتوقف عن تنفيذ المهام الأخرى مؤقتًا.
ولهذا تستخدم JavaScript مفهومًا مهمًا يسمى البرمجة غير المتزامنة (Asynchronous Programming).
---
ما هي البرمجة غير المتزامنة؟
البرمجة غير المتزامنة هي طريقة تسمح للبرنامج ببدء عملية قد تستغرق وقتًا، ثم متابعة تنفيذ العمليات الأخرى بدلًا من الانتظار حتى تنتهي العملية الأولى.
وعندما تكتمل العملية، يمكن للبرنامج التعامل مع نتيجتها.
---
لماذا نحتاج إلى البرمجة غير المتزامنة؟
توجد عمليات لا يمكن معرفة وقت انتهائها مسبقًا.
مثلًا قد يحتاج البرنامج إلى طلب بيانات من خادم عبر الإنترنت، وقد يستغرق الخادم بعض الوقت حتى يرسل النتيجة.
خلال هذه الفترة لا نريد أن يتوقف التطبيق عن الاستجابة.
---
العمليات غير المتزامنة
من أمثلة العمليات التي قد تكون غير متزامنة:
- جلب البيانات من الإنترنت.
- إرسال طلبات إلى الخوادم.
- قراءة بعض البيانات.
- تنفيذ عمليات تستغرق وقتًا.
- التعامل مع واجهات البرمجة (APIs).
---
JavaScript والبرمجة غير المتزامنة
تتميز JavaScript بقدرتها على التعامل مع العمليات غير المتزامنة، خصوصًا في تطبيقات الويب.
وهذا يسمح للتطبيق بتنفيذ مهام أخرى أثناء انتظار نتيجة العملية التي تستغرق وقتًا.
---
طرق التعامل مع العمليات غير المتزامنة
توفر JavaScript عدة طرق للتعامل مع العمليات غير المتزامنة، ومن أهمها:
- Callbacks
- Promises
- async / await
تساعد هذه الأدوات على تحديد ما يجب أن يحدث عند انتهاء العملية أو عند حدوث خطأ.
---
أهمية البرمجة غير المتزامنة
تعتبر البرمجة غير المتزامنة من المفاهيم الأساسية في JavaScript الحديثة.
فمعظم تطبيقات الويب تحتاج إلى التواصل مع الخوادم وجلب البيانات بشكل مستمر، ولذلك يجب أن يكون البرنامج قادرًا على التعامل مع هذه العمليات دون تجميد التطبيق.
---
استخدام البرمجة غير المتزامنة في المشاريع
تستخدم في العديد من التطبيقات، مثل:
- تطبيقات الطقس.
- المتاجر الإلكترونية.
- تطبيقات التواصل.
- الألعاب التي تتصل بالخوادم.
- التطبيقات التي تعتمد على APIs.
---
فوائد البرمجة غير المتزامنة
توفر البرمجة غير المتزامنة العديد من المزايا، منها:
- تحسين استجابة التطبيق.
- التعامل مع العمليات التي تستغرق وقتًا.
- منع توقف واجهة المستخدم أثناء الانتظار.
- تسهيل التواصل مع الخوادم.
- تحسين تجربة المستخدم.
---
أخطاء شائعة عند المبتدئين
من الأخطاء التي يقع فيها المبتدئون:
- عدم فهم الفرق بين المتزامن وغير المتزامن.
- التعامل مع نتيجة العملية قبل اكتمالها.
- تجاهل الأخطاء التي قد تحدث أثناء العملية.
- استخدام عدة طرق غير متزامنة دون فهم طريقة عملها.
لذلك من الأفضل تعلم كل طريقة بشكل تدريجي وفهم متى تستخدم.
---
ملخص الدرس
تعرفنا في هذا الدرس على البرمجة غير المتزامنة (Asynchronous Programming) في JavaScript، وعرفنا لماذا نحتاج إليها عند التعامل مع العمليات التي تستغرق وقتًا، كما تعرفنا على أهم الأدوات المستخدمة معها مثل Callbacks وPromises وasync/await.
في الدرس الثلاثين سنتعرف على الوعود (Promises)، وسنفهم كيف تستخدم JavaScript الوعود للتعامل مع نتائج العمليات غير المتزامنة.



