ظپط§ط¦ط¯ط© ط§ظ„ط¯ط§ظ„ط© flush




بسم الله الرحمن الرحيم




وعلى اله وصحبه اجمعين وبعد .. // السلام عليكم ورحمة الله وبركاته ،،


حتى توضح المعلومات لديك

معظم مزودات الويب إذا لم تكن كلها تتبع الخطوات التالية عند طلب صفحة:
1- يطلب الزائر صفحة php
2- يقوم السيرفر SERVER بترجمة الملف و الحصول على النتائج
3- يخزن هذه النتائج في مايسمى بالـ output buffers
4- عندما ينتهي من ترجمة الملف كله وتخزين النتائج في الـbuffers يقوم بإرسال كل مافي الـbuffer إلى المتصفح
5- يقوم بتفريغ محتويات الـ buffer


عندما تستخدم الدالة flush() في ملف php:
1- يطلب الزائر صفحة php
2- يقوم السيرفر SERVER بترجمة الملف والحصول على النتائج ويخزنها في الـbuffer
3- خلال ترجمته للملف و حين يصل للدالة flush() يقوم بإرسال كل مافي الـ buffer حاليا ويفرغها
4- يكمل ترجمة ماتبقى من الملف ويخزن النتائج في الـbuffer
5- دائما عندما ينتهي من ترجمة الملف او تواجهه دالة flush() فإنه يقوم بإرسال مافي الـbuffer وتفريغه

مافائدتها؟
مثلا عندك صفحة فيها حلقة تكرار مثلا فوق الـ10000 مرة
ممكن تستخدم الـflush(); في نهاية كل دورة، بحيث ماتكبر محتويات الـbuffer و ترهق السيرفر SERVER وايضا عندما يكون الملف كبير، فالمستعرض مازال ينتظر وصول النتائج إليه، فإذا تأخرت النتائج يظهر لك مشكلة

أما sleep( int ) فهي تقوم بعملية راحة للسيرفر SERVER لمدة انت تحددها بالثواني ، تستفيد منها لما يكون في عندك حلقة تكرار كبييرة ، وفي كل دورة مثل تنفذ امر كبير، لنقل انه mail() ، فالسيرفر SERVER سيتعب من كثرة تنفيذ هذه الدالة التي تشغل برنامجا خارجيا (sendmail غالبا) ، فأنت تريحه لمدة 5 ثواني مثلا بين كل دورة ودورة
sleep(5);

ارجو ان تكون وضحت الصورة
تحياتي لكم









©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى©