ASP.NET中Response.BufferOutput屬性的使用技巧
BufferOutput屬性用于獲取或設(shè)置一個值,該值指示是否緩沖輸出并在處理完整個頁之后發(fā)送它。該屬性默認值是true,因此我們通常的頁面中的輸出內(nèi)容都是在頁面處理完成之后才發(fā)送給客戶端由瀏覽器呈現(xiàn)出來。如果頁面要處理的內(nèi)容很多,可能很長時間才能看到頁面上的內(nèi)容。這個時候有兩種方法可以讓信息逐步顯示,這樣就能知道當前程序運行到哪一步了。
方法1:BufferOutput默認值為true,這個時候可以借助Flush方法和Clear方法將當前緩沖區(qū)的信息輸出。這個方法比較通用,當你的頁面在處理一個復(fù)雜的程序的時候,可以即時輸出一些提示信息。
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ShowInfo("中", 100); Response.Flush(); Response.Clear(); Thread.Sleep(1000); ShowInfo("國", 5); Response.Flush(); Response.Clear(); Thread.Sleep(1000); } } private void ShowInfo(string it, int count) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < count; i++) { sb.Append(it); } sb.Append("<br/>"); Response.Write(sb.ToString()); }
方法2:把BufferOutput值設(shè)為false,這個時候緩沖區(qū)的內(nèi)容會立即發(fā)送給客戶端顯示。這種方法有性能問題,因為沒有使用緩沖輸出,不過代碼簡潔一些。
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Response.BufferOutput = false; ShowInfo("中", 100); Thread.Sleep(1000); ShowInfo("國", 5); Thread.Sleep(1000); } } private void ShowInfo(string it, int count) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < count; i++) { sb.Append(it); } sb.Append("<br/>"); Response.Write(sb.ToString()); }
在使用的時候有兩個問題需要注意:
一是IE瀏覽器在緩沖區(qū)數(shù)據(jù)不少于256字節(jié)的情況下才會輸出到客戶端,經(jīng)測試FF瀏覽器沒有這個問題。
二是UFT8編碼的漢字一般占三個字節(jié)(Unicode編碼是兩個字節(jié)),這里第一次輸出100個漢字是為了保證至少有256個字節(jié)的數(shù)據(jù)。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- ASP.NET輕量級MVC框架Nancy的基本用法
- ASP.NET Core通用主機實現(xiàn)托管服務(wù)
- ASP.NET?Core通用主機的系統(tǒng)配置
- ASP.NET Core中的對象池介紹
- ASP.NET?Core的日志系統(tǒng)介紹
- ASP.NET?Core配置設(shè)置之Configuration包
- asp.net中MVC的處理流程詳解
- Asp.net core利用dynamic簡化數(shù)據(jù)庫訪問
- Asp.net core實現(xiàn)PushStream視頻流推送
- 在Asp.net core中實現(xiàn)websocket通信
- ASP.Net Core基于ABP架構(gòu)配置To Json序列化
- ASP.NET中的Razor語法簡介
相關(guān)文章
Entity?Framework?Core相關(guān)包的概念介紹與安裝
這篇文章介紹了Entity?Framework?Core相關(guān)包的概念與安裝方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-03-03Asp.net中的GridView導(dǎo)出遇到的兩個問題和解決方法
Asp.net下GridView導(dǎo)出遇到的兩個問題與解決方法,需要的朋友可以參考一下。2009-12-12ASP.NET MVC限制同一個IP地址單位時間間隔內(nèi)的請求次數(shù)
這篇文章介紹了ASP.NET MVC限制同一個IP地址單位時間間隔內(nèi)請求次數(shù)的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10利用Asp.Net Core的MiddleWare思想如何處理復(fù)雜業(yè)務(wù)流程詳解
這篇文章主要給大家介紹了關(guān)于利用Asp.Net Core的MiddleWare思想如何處理復(fù)雜業(yè)務(wù)流程的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧2018-08-08淺談?wù)l都能看懂的單點登錄(SSO)實現(xiàn)方式(附源碼)
這篇文章主要介紹了淺談?wù)l都能看懂的單點登錄(SSO)實現(xiàn)方式(附源碼),具有一定的參考價值,有需要的可以了解一下。2016-12-12ASP.net Menu控件在Google Chrome和Safari瀏覽器下顯示錯位的解決辦法
在ASP.NET網(wǎng)站項目中添加Others.browser內(nèi)容如下2009-05-05Convert.ToInt32與Int32.Parse區(qū)別及Int32.TryParse
2個方法都可以把string轉(zhuǎn)換為int,那么他們有什么區(qū)別?什么時候該用什么?性能如何。 其實在2.0里還有Int32.TryParse也實現(xiàn)了同樣的效果。2009-01-01IIS 瀏覽aspx頁面出現(xiàn)無法顯示XML頁的解決方法分享
這篇文章介紹了IIS 瀏覽aspx頁面出現(xiàn)無法顯示XML頁的解決方法,有需要的朋友可以參考一下2013-11-11