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

