Farklı yazarlar çıktı tamponlama kullanarak öneririm internette malzeme biraz okudum. Komik şey gerçek içeriği ile yanıt başlıklarını karıştırmak için izin vermesi nedeniyle kullanımı için çoğu yazarlar bir argümandır. Açıkçası, ben sorumlu web uygulamaları should not mix çıkış başlıkları ve içerik ve web geliştiricileri çıkış oluşturulduktan sonra gönderilen başlıklarında neden kendi komut mümkün mantıksal kusurları için bakmak gerektiğini düşünüyorum. Bu ob_*
çıktı tamponlama API karşı benim ilk argümandır. Hatta bu küçük kolaylık olsun - çıkışı ile başlıkları karıştırma - bir genellikle ciddi bir web uygulamasında amaç ne yol değildir ki, hızlı komut kadar kesmek gerekiyor sürece, onu kullanmak için yeterli bir neden değildir.
Ayrıca, çıktı tamponlama API ile uğraşan insanların çoğu açık çıktı tamponlama zaten, still does some internal buffering takılı web sunucusu ile birlikte, PHP etkinleştirilmiş bile olmadan gerçeği hakkında sanmıyorum düşünüyorum. Bu kontrol etmek kolaydır - 10 saniye söylemek için bazı kısa dize bir yankı, uyku yapmak ve başka bir yankı yapmak. Bir tarayıcı ile komut isteyin ve iki satır sonra görünen ile, 10 saniye boyunca boş sayfa duraklama izleyebilirsiniz. Bazıları istemci ve sunucu arasındaki gerçek trafiğini izlemek, bir rendering parazit değil, trafik söylüyorlar önce sunucu tüm çıkış için uygun bir değer ile Content-Length
başlık üretti gösterir - düşündüren bu Çıktı, her echo
çağrısı ile kademeli gönderilir, ancak bazı tampon biriken ve sonra komut sona ermesi üzerine gönderilmedi. Neden biz birbiri üstüne iki farklı çıkış tampon uygulamaları gerek yoktur - bu açık çıktı tamponlama ile benim sancı biridir? Dahili (erişilemez) PHP / Web sunucusu çıktı tamponlama bir PHP geliştiricisi kontrol edemez koşullara tabidir, ve gerçekten kullanışlı değil, bu nedenle bunun nedeni bu olabilir mi?
Her durumda, biri için ben, bir açık çıktı tamponlama (ob_*
fonksiyonların serisi) önlemek ve örtük birine güvenmek, iyi flush
fonksiyonu ile yardım gerektiğini düşünmeye başlar , gerektiğinde. Aslında her echo / baskı çağrısı ile istemciye çıktı göndermek için web sunucusu bazı garanti yoktu belki, o zaman açık tamponlama kurmak yararlı olacaktır - her biri bir 100 ile istemciye yanıt göndermek istemiyor sonra bayt topakları. Ancak iki tamponlar ile alternatif bir soyutlama biraz gereksiz bir tabaka gibi görünüyor.
Yani, sonuçta, ciddi web uygulamaları çıktı tamponlama gerekiyor?