在.NET中,httpResponse.end()
的描述指出「將所有當前緩衝的輸出發送到客戶端」。任何人都可以向我解釋這是什麼意思?具體是什麼'緩衝輸出'?我在問,因爲我被要求用HttpContext.Current.ApplicationInstance.CompleteRequest()
替換httpResponse.end
。當涉及到文件時,這會造成問題,所以我猜這個短語與它有關。來自httpResponse.end()的緩衝輸出?
4
A
回答
1
緩衝輸出是您的程序已經生成但尚未轉發到其預定目的地的輸出。
緩衝與I/O操作有很大關係,以避免以小增量發送/寫入數據的成本:在寫入時不會將輸出傳遞到目標,系統會將更大的數據塊收集到內存中稱爲「緩衝區」的區域,並且僅在達到特定大小時才發送/寫入數據。
有兩種方法的緩衝數據使得到它的目的地:
- 輸出的量達到一定的閾值時,或
- 調用一些方法來「刷新」緩衝明確。
httpResponse.end
就是這樣一種方法:它通過將所有已寫入的內容發送到客戶端來清空緩衝區。
1
緩衝輸出意味着任何準備發送到客戶端但尚未發送到客戶端的輸出。
2
不是在您將它寫入輸出流後立即發送每一位信息,而是存儲您在內存中寫入的內容,直到它具有「足夠」的數據,並認爲值得花時間發送它給客戶。根據緩衝數據的上下文和原因,緩衝區的大小可能有很大差異。刷新緩衝區是爲了處理緩衝區中的所有未決數據(在這種情況下,處理意味着通過網絡將其發送到客戶端)。這就是你的情況end
。
緩衝可以做很多原因,但通常這是一個性能問題。如果您爲寫入流中的每個字符發送了一個網絡數據包,或者(在很多情況下)每個字符串都傳遞給Write
,那將是非常浪費和耗時的。通過發送更少,更大的信息包,應用程序的執行速度會更快。
相關問題
- 1. 來自IHTTPHandler的無緩衝輸出
- 2. PHP輸出緩衝
- 3. 輸出緩衝區
- 4. Perl緩衝輸出
- 5. 緩衝輸出流
- 6. libdtrace緩衝輸出
- 7. 來自PHP和輸出緩衝的JavaScript(帶有Ajax)
- 8. 解碼來自MediaCodec的輸出緩衝區
- 9. 如何關閉輸入/輸出緩衝區中的輸入/輸出緩衝區
- 10. 輸出流緩衝輸出流附加
- 11. 輸出緩衝還是輸出數據
- 12. 包含輸出緩衝區?
- 13. PHP輸出緩衝變量
- 14. javascript輸出緩衝區
- 15. 停止PHP輸出緩衝
- 16. PHP輸出緩衝檢查?
- 17. 輸出緩衝問題 - PHP
- 18. PHP輸出緩衝堆疊
- 19. 什麼是輸出緩衝?
- 20. 無緩衝Bash輸出
- 21. PHP:結束輸出緩衝
- 22. 在wordpress中輸出緩衝
- 23. fwrite是否緩衝輸出?
- 24. 輸出一個緩衝流
- 25. 輸出緩衝替代php
- 26. 與輸出緩衝破除
- 27. 輸出緩衝和AJAX
- 28. 輸出緩衝,分層?
- 29. 輸出緩衝區+ PDF - PHP
- 30. PHP輸出緩衝(ob_start,ob_flush)
什麼是導致問題和什麼類型的問題? –
藝術做一個MSDN谷歌搜索,你可能會得到一個更快的答覆,因爲你將能夠讀取什麼和每一個意味着 – MethodMan
當你寫入一個流,你寫入它的數據通常不會立即傳輸。它進入一個緩衝區,保存要發送的數據。當一個流被刷新時,緩衝區中的數據被髮送並且緩衝區被清除。它有效地說它正在沖淡迴應。 –