2011-06-18 11 views
6

तो मैं कुछ PHP/अपाचे के साथ प्रयोग कर रहा हूं। मान लें कि मेरे पास यह कोड है।पृष्ठ लोड के रूप में PHP echo-ing सामग्री

<div>DIV 1</div> 
<?php sleep(2); ?> 
<div>DIV 2</div> 
<?php sleep(2); ?> 
<div>DIV 3</div> 
<?php sleep(2); ?> 
<div>DIV 4</div> 
<?php sleep(2); ?> 

सभी डेटा एक ही बार में ब्राउज़र में प्रकट होता मेरे स्थानीय अपाचे वेबसर्वर पर किसी कारण से, सभी 4 नींद() रों के बाद (8 सेकंड) के बाद मार दिया।

हालांकि अगर मैं इसे अपने होस्ट के सर्वर पर चलाता हूं, तो डेटा वास्तविक समय में ब्राउजर को इको-एड होता है। जैसा कि ... div1 प्रकट होता है, 2 सेकंड div 2 प्रकट होता है आदि

वह क्यों है? क्या यह अपाचे में कुछ सेटिंग है?

+0

यह बफरिंग और कैशिंग है:

यहाँ पूर्ण php.net से उत्पादन बफर के लिए संदर्भ है। –

उत्तर

6

नहीं, यह php में कोई सेटिंग हो सकती है।

आपके स्थानीय सर्वर में, output_buffering आपकी php.ini फ़ाइल में सक्षम है।

आप निर्धारित करके उसे निष्क्रिय कर सकते हैं:

output_buffering = off 

सुनिश्चित करने के लिए सामग्री ब्राउज़र के लिए हर बार एक गूंज की तरह बयान किया जाता है भेजा गया है, जोड़ें:

implicit_flush = on 

आप भी कर सकते हैं output_buffering एक मूल्य देकर बफर आकार सेट करें।

output_buffering = 4096 

यहां बफर आकार 4KB होगा।

आउटपुट बफरिंग PHP को सभी डेटा को स्मृति में रखने के लिए बताती है जब तक कि यह आपके कोड में फ्लश() निर्देश को एन्क्यूट नहीं करता है, बफर पूर्ण होता है, या यह स्क्रिप्ट का अंत होता है। कई परतों और उपकरणों, जो आप और निश्चितता के किसी भी काफी हद तक नियंत्रित करने के लिए नहीं प्रयास नहीं करना चाहिए कर सकते हैं के माध्यम से php output buffer

+0

@ dader51: आपका मतलब 4Kio है? –

+0

ओह क्षमा करें, मेरी अंग्रेजी! मेरा मतलब 4 केबी था। – dader

+0

आप सही आउटपुट बफरिंग चालू थे। मैंने इसे अक्षम कर दिया लेकिन यह अभी भी वही करता है। कोई अन्य विचार? – John

संबंधित मुद्दे