ASP.NET中Response.BufferOutput屬性的使用技巧
BufferOutput屬性用于獲取或設置一個值,該值指示是否緩沖輸出并在處理完整個頁之后發(fā)送它。該屬性默認值是true,因此我們通常的頁面中的輸出內(nèi)容都是在頁面處理完成之后才發(fā)送給客戶端由瀏覽器呈現(xiàn)出來。如果頁面要處理的內(nèi)容很多,可能很長時間才能看到頁面上的內(nèi)容。這個時候有兩種方法可以讓信息逐步顯示,這樣就能知道當前程序運行到哪一步了。
方法1:BufferOutput默認值為true,這個時候可以借助Flush方法和Clear方法將當前緩沖區(qū)的信息輸出。這個方法比較通用,當你的頁面在處理一個復雜的程序的時候,可以即時輸出一些提示信息。
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值設為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)托管服務
- ASP.NET?Core通用主機的系統(tǒng)配置
- ASP.NET Core中的對象池介紹
- ASP.NET?Core的日志系統(tǒng)介紹
- ASP.NET?Core配置設置之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)文章
Coolite Cool Study 1 在Grid中用ComboBox 來編輯數(shù)據(jù)
作為Coolite的第一個教程,我想展現(xiàn)給大家能夠體現(xiàn)Coolite強大的例子(當然也比官方例子稍微復雜一點)。2009-05-05
ASP.NET中ListView(列表視圖)的使用前臺綁定附源碼
ListView(列表視圖)想必大家都知道吧,接下來本文將介紹下ListView的使用前臺綁定,感興趣的你可不要錯過本文了哈2013-03-03
.Net Core中使用ExceptionFilter過濾器的方法
這篇文章主要介紹了.Net Core中使用ExceptionFilter過濾器的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03
ASP.NET Core MVC學習教程之路由(Routing)
這篇文章主要給大家介紹了關(guān)于ASP.NET Core MVC學習教程之路由(Routing)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用ASP.NET Core MVC具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-07-07
ASP.NET性能優(yōu)化之讓瀏覽器緩存動態(tài)網(wǎng)頁的方法
上一篇《ASP.NET性能優(yōu)化之構(gòu)建自定義文件緩存》我們通過OutputCache,讓請求去訪問服務器asp.net的輸出緩存,我們擴展了OutputCacheProvider,這相當于是訪問服務器上的靜態(tài)資源。2011-09-09
關(guān)于c#連接ftp進行上傳下載實現(xiàn)原理及代碼
ftp上傳下載想必大家已經(jīng)很熟悉了,關(guān)于c#連接ftp進行上傳下載,一些新手朋友應該會很陌生吧,本文將帶你解決困惑,感興趣的朋友可以了解下哦,就當鞏固知識了2013-01-01
Linux(Ubuntu)下搭建ASP.NET Core環(huán)境
本文給大家介紹的是無需安裝mono,在Linux(Ubuntu14.04.4 LTS)下搭建ASP.NET Core環(huán)境 繼續(xù).NET跨平臺,希望對大家能夠有所幫助。2016-07-07

