में PHP फ्लश फ्लशिंग बंद कर दिया गया है हम PHP के फ्लश का उपयोग तुरंत उसी पृष्ठ पर "रिक्त" करने के लिए कर रहे हैं जैसे ही क्लिक किया गया है, और पेज के नेविगेशन और मुख्य घटकों को भी भेजने के लिए ताकि एक पृष्ठ लगभग तुरंत दिखाई दे , भले ही सामग्री को लोड करने में लंबा समय लगे।आईआईएस 7.5
यह बहुत अच्छी तरह से काम कर रहा है।
हाल ही में हमने आईआईएस 7.0 से 7.5 तक अपग्रेड किया और अब फ्लश काम नहीं करता है। समस्या की जांच करते समय हमने स्थिर और गतिशील दोनों फ़ाइलों के लिए संपीड़न बंद कर दिया है। हमने आउटपुट कैशिंग भी बंद कर दिया है।
हमारे पास zlib संपीड़न बंद है और php.ini में आउटपुट बफरिंग है।
आदेश समस्या हम निम्न स्क्रिप्ट
@ini_set("output_buffering", "Off");
@ini_set('implicit_flush', 1);
@ini_set('zlib.output_compression', 0);
ob_start();
echo "starting...<br/>\n";
for($i = 0; $i < 5; $i++) {
print "$i<br/>\n";
ob_end_flush();
ob_flush();
flush();
ob_start();
sleep(2);
}
print "DONE!<br/>\n";
ब्राउज़र सिर्फ लोड हो रहा है स्थिति (जो कुछ भी है कि किसी भी ब्राउज़र में है पता चलता है का परीक्षण करने के लिए, IE में यह एक अजाक्स ऐनिमेटेड gif की तरह दिखता है, फ़ायरफ़ॉक्स में टैब "कनेक्टिंग ..." कहेंगे) 10 सेकंड के लिए, और फिर अचानक पूरा आउटपुट दिखाई देता है।
हमने इस साइट पर समान प्रश्नों के आधार पर फ्लश और ob_flush और ob_end_flush के विभिन्न संयोजनों का प्रयास किया है। उनमें से कोई भी काम नहीं करता है। आईआईएस/PHP डेटा को फ्लश करने का कोई तरीका है?
function flush_buffers(){
ob_end_flush();
ob_flush();
flush();
ob_start();
}
अपने कोड में
तो:
ob_start();
flush_buffers();
echo "starting...<br/>\n";
for($i = 0; $i < 5; $i++) {
print "$i<br/>\n";
flush_buffers();
sleep(2);
}
यह :-)
यहाँ है दोषरहित काम करना चाहिए
यह काम किया। यह देखने के लिए टुकड़े से अलग टुकड़ा लेना कि कौन सा कुंजी है ... –
@ जेफ, डेमो को थोड़ा सा मदद चाहिए :-) – Neal
ऐसा लगता है कि कुंजी सामग्री प्रकार है: टेक्स्ट/एचटीएमएल; charset = utf-8। इसे हेडर के रूप में जोड़ना भी काम करता है। विशेष रूप से ऐसा लगता है कि charset = utf-8 यह काम करता है। –