احدى المشكلات المعروفة فى الPHP هى أنة لا يدعم الMulti-Threading وهو ما حذا الكثيرين الى محاوله اضافة هذة الخاصية بطريقة أو أخرى وهناك العديد من المحاولات والتالى هى محاولتى الشخصية التى سأحاول توضيحها فيما يلى و أنتظر ردودكم و اقتراحاتكم :-
Multi-Threading:- أبسط تعريف يمكن قولة هو وجود أكثر من مسار للتنفيذ تسير بشكل متوازى لا متسلسل وهو ما يعطى سلاسة و قوة فى الآداء وجودة أعلى فى التفاعل مع المستخدم.
المشكلة هى عدم وجود ذلك فى الPHP بشكل مباشر كما هو الحال مع C# مثلا . فكرتى هنا كانت فى استغلال الAjax وذلك للقيام بتفعيل الThreads والتى ما هى الا PHP Scripts واعطائها مدخلات و مراقبة حالة تنفيذها .
و لتنفيذ ذلك يمكن استخدام Js Class لكتابة الAjax ثم استخدام PHP class كويسيط بين الJs Class و الUser Script انظر الشكل التالى :-
و بداية من هنا كان التنفيذ سهلا و انقسم الى خطوات :
1. Js Class : ويتولى مهمة توليد كائنات الAjax و تم تنفيذة باستخدام أمرى flush,echo . حيث ترسل أكواد javascript ب echo على دفعات و تنفذ كل دفعة بflush (لاقناع المتصفح بتنفيذها ) .
2.PHP Class: و الذى اقتصر دوره على انه Interface مع الJs Class وذلك لتسيل التعامل معة .
الأكواد بالمرفقات أو هنا . وأنتظر بشغف رأيكم و تقيمكم للمحاولة و استفساراتكم.
ملاحظات :-
- المشروع لسة فى النسخة التجريبية و متوقع الكثير من الأخطاء :blink: .
- تحتوى الأكواد على أمثلة جيدة لمن أراد الابتداء فى JsOO و Ajax .
- الأكواد المرفقة ستعمل مع كل المتصفحات تقريبا عدا IE التعديل سهل لمن اراد و ان كان كده أحسن ;) .
- المثال المرفق مع ال Classes هو مثال بسيط يقوم بتنزيل ملفين على التوالى مع عرض النسبة التى تم تنزيلها بشكل بسيط ( المثال قابل للتنفيذ بطرق أخرى و هنا للايضاح فقط ) و لابد من قراءتة و تعديلة ليعمل معك (تغيير وصلات ) وفى الأغلب سيعمل فى www فى wamp مباشرة مع تفعيل Curl .
- هناك نقطان أقولهما :-
- الThreads لا تتوقف بتوقف الScript الرئيسى .
- يمكن مباصاة مدخلات للScript و أخذ مخرجات منة .

