شقران
10-20-2007, 10:15 PM
بسم الله الرحمن الرحيم
وعلى اله وصحبه اجمعين وبعد ..
أول درس لي في لغة البي اتش بي وان شاء الله يعجبكم :icon31:
حتى توضح المعلومات لديك
معظم مزودات الويب إذا لم تكن كلها تتبع الخطوات التالية عند طلب صفحة:
1- يطلب الزائر صفحة php
2- يقوم السيرفر بترجمة الملف و الحصول على النتائج
3- يخزن هذه النتائج في مايسمى بالـ output buffers
4- عندما ينتهي من ترجمة الملف كله وتخزين النتائج في الـbuffers يقوم بإرسال كل مافي الـbuffer إلى المتصفح
5- يقوم بتفريغ محتويات الـ buffer
عندما تستخدم الدالة flush() في ملف php:
1- يطلب الزائر صفحة php
2- يقوم السيرفر بترجمة الملف والحصول على النتائج ويخزنها في الـbuffer
3- خلال ترجمته للملف و حين يصل للدالة flush() يقوم بإرسال كل مافي الـ buffer حاليا ويفرغها
4- يكمل ترجمة ماتبقى من الملف ويخزن النتائج في الـbuffer
5- دائما عندما ينتهي من ترجمة الملف او تواجهه دالة flush() فإنه يقوم بإرسال مافي الـbuffer وتفريغه
مافائدتها؟
مثلا عندك صفحة فيها حلقة تكرار مثلا فوق الـ10000 مرة
ممكن تستخدم الـflush(); في نهاية كل دورة، بحيث ماتكبر محتويات الـbuffer و ترهق السيرفر وايضا عندما يكون الملف كبير، فالمستعرض مازال ينتظر وصول النتائج إليه، فإذا تأخرت النتائج يظهر لك مشكلة
أما sleep( int ) فهي تقوم بعملية راحة للسيرفر لمدة انت تحددها بالثواني ، تستفيد منها لما يكون في عندك حلقة تكرار كبييرة ، وفي كل دورة مثل تنفذ امر كبير، لنقل انه mail() ، فالسيرفر سيتعب من كثرة تنفيذ هذه الدالة التي تشغل برنامجا خارجيا (sendmail غالبا) ، فأنت تريحه لمدة 5 ثواني مثلا بين كل دورة ودورة
sleep(5);
ارجو ان تكون وضحت الصورة
تحياتي لكم:bye1:
وعلى اله وصحبه اجمعين وبعد ..
أول درس لي في لغة البي اتش بي وان شاء الله يعجبكم :icon31:
حتى توضح المعلومات لديك
معظم مزودات الويب إذا لم تكن كلها تتبع الخطوات التالية عند طلب صفحة:
1- يطلب الزائر صفحة php
2- يقوم السيرفر بترجمة الملف و الحصول على النتائج
3- يخزن هذه النتائج في مايسمى بالـ output buffers
4- عندما ينتهي من ترجمة الملف كله وتخزين النتائج في الـbuffers يقوم بإرسال كل مافي الـbuffer إلى المتصفح
5- يقوم بتفريغ محتويات الـ buffer
عندما تستخدم الدالة flush() في ملف php:
1- يطلب الزائر صفحة php
2- يقوم السيرفر بترجمة الملف والحصول على النتائج ويخزنها في الـbuffer
3- خلال ترجمته للملف و حين يصل للدالة flush() يقوم بإرسال كل مافي الـ buffer حاليا ويفرغها
4- يكمل ترجمة ماتبقى من الملف ويخزن النتائج في الـbuffer
5- دائما عندما ينتهي من ترجمة الملف او تواجهه دالة flush() فإنه يقوم بإرسال مافي الـbuffer وتفريغه
مافائدتها؟
مثلا عندك صفحة فيها حلقة تكرار مثلا فوق الـ10000 مرة
ممكن تستخدم الـflush(); في نهاية كل دورة، بحيث ماتكبر محتويات الـbuffer و ترهق السيرفر وايضا عندما يكون الملف كبير، فالمستعرض مازال ينتظر وصول النتائج إليه، فإذا تأخرت النتائج يظهر لك مشكلة
أما sleep( int ) فهي تقوم بعملية راحة للسيرفر لمدة انت تحددها بالثواني ، تستفيد منها لما يكون في عندك حلقة تكرار كبييرة ، وفي كل دورة مثل تنفذ امر كبير، لنقل انه mail() ، فالسيرفر سيتعب من كثرة تنفيذ هذه الدالة التي تشغل برنامجا خارجيا (sendmail غالبا) ، فأنت تريحه لمدة 5 ثواني مثلا بين كل دورة ودورة
sleep(5);
ارجو ان تكون وضحت الصورة
تحياتي لكم:bye1: