दिलचस्प पोस्ट
जावास्क्रिप्ट में स्प्रेड ऑपरेटर का कई बार उपयोग करना? जावा में दो छवियों के बीच टकराव की जांच मान मान मान्य करें जावा में सुंदर प्रिंट JSON एचटीएमएल 5 फार्म सत्यापन / आवश्यक पॉपअप के लिए ओवरराइड सीएसएस Android.content.res.Resources $ NotFoundException प्राप्त करना: अपवाद तब भी जब संसाधन एंड्रॉइड में मौजूद है JSONArray से JSONObject प्राप्त करना MySQL के साथ जुड़ने के लिए टॉमकेट को कॉन्फ़िगर कैसे करें I स्प्लिट फ़ंक्शन जोड़ें: \ xef \ xbb \ xbf … \ n मेरी सूची में क्रेडेंशियल्स के साथ पृष्ठ को एक्सेस करने वाले वेबक्लाइंट Xcode स्रोत स्वचालित स्वरूपण htmlentities () बनाम htmlspecialchars () दो ध्वनियाँ एक साथ खेलते हैं जावास्क्रिप्ट में स्ट्रिंग से दिनांक ऑब्जेक्ट कैसे बनाएं क्या यह सही स्थिति का उपयोग करने के लिए बुरा व्यवहार माना जाता है?

PHP बफर ob_flush () बनाम फ्लश ()

ob_flush() और flush() में अंतर क्या है और मुझे दोनों क्यों कॉल करना चाहिए?

ob_flush() संदर्भ कहते हैं:

यह फ़ंक्शन आउटपुट बफर की सामग्री (यदि कोई है) भेजेगा।

flush() संदर्भ कहते हैं:

PHP के लिखने बफ़र्स और जो भी बैकएंड पीएचपी (सीजीआई, एक वेब सर्वर, आदि) का उपयोग कर रहा है, उसे फ्लश करता है।

हालांकि, यह कहना जारी है:

[यह] आपके वेब सर्वर की बफरिंग स्कीम को ओवरराइड करने में सक्षम नहीं हो …

इसलिए, मुझे लगता है कि मैं सिर्फ ob_flush() सभी समय का उपयोग कर सकता था हालांकि, जब मैं ऐसा करता हूं तो मुझे अजीब परिणाम मिलते हैं I क्या कोई सरल शब्दों में समझा सकता है कि यहां क्या हो रहा है?

Solutions Collecting From Web of "PHP बफर ob_flush () बनाम फ्लश ()"

ob_flush एक अनुप्रयोग-शुरू बफर भेजता है। किसी भी PHP स्क्रिप्ट में एकाधिक नेस्टेड ob_start() हो सकते हैं ob_flush वर्तमान सामग्री को ऊपरी परत से गुजरता है

खुद PHP (अपने विवेक पर) बफर आउटपुट हो सकता है यह बैक-एंड पर निर्भर करता है लेकिन आमतौर पर FastCGI पास FastCGI बफर होता है इसलिए वर्तमान सामग्री को वेब सर्वर पर भेजने के लिए flush() को लागू करने की आवश्यकता है

और अब वेब सर्वर एक और बफरिंग योजना ( mod_deflate या content filter) को लागू कर सकता है, जिस पर आपके पास कोई प्रभाव नहीं है। लेकिन यह शायद ही कभी है, क्योंकि इसे विशेष रूप से कॉन्फ़िगर करने की आवश्यकता है।

फिर भी, दोनों का उपयोग करें

ob_flush आउटपुट बफ़र्स जो आपने ob_start जैसी फ़ंक्शन के साथ बनाया है

flush अपने कॉलर को पीएचपी लिपि का उत्पादन buffered

ob_flush() एक उच्च स्तरीय फ्लश है। यह उच्च स्तरीय बफ़र्स flushes और सभी सामग्री को भेजने के लिए तैयार निम्न स्तर, आंतरिक buffers में डालता है।

  • ध्यान दें कि कार्यों के ob_ परिवार बफ़र्स के ढेर बनाते हैं, इसलिए हर जगह वास्तव में ob_flush() लिखते ob_flush() आपको "अजीब परिणाम" दे रहा है यदि कोड को इस स्टैकिंग का लाभ लेने के लिए लिखा गया था।

flush() एक निम्न-स्तर के फ्लश है, जो PHP को अपने आंतरिक, निम्न स्तर के डेटा बफ़र्स को फ्लश करने के लिए निर्देश देता है

अभी भी नीचे, सॉकेट-लेयर बफ़र्स होंगे; उसके नीचे, नेटवर्क-परत बफ़र्स हैं और, निम्नतम स्तर पर, डेटा केबल नीचे जाने वाले इलेक्ट्रॉनों की कतार

मुझे लगता है कि यह आपके पिछले प्रश्न के संबंध में है आउटपुट बफ़रिंग का उपयोग करने का महत्वपूर्ण लाभ होता है जब डेटा संपीड़न के साथ इसका उपयोग किया जाता है। यदि आप ob_gzhandler का उपयोग नहीं कर रहे हैं, तो लाभ प्राप्त करने के लिए बहुत कम है। अकेले flush ही होगा जो आउटपुट डेटा सर्वर पर अभी भी है। ob_start और उसके समकक्ष ob_flush , ob_end_clean और ob_end_flush , जो कुछ भी संकुचित होने की प्रतीक्षा कर रहा है ( flush और अलग-अलग बाल्टी के संदर्भ में ob_flush ob flush लिए डेटा भेजता है, flush ब्राउज़र को डेटा भेजता है – सटीक नहीं हो सकता है लेकिन यह विचार है) ऊपर लपेटा जाएगा और क्लाइंट को भेजा जाएगा।