ASP.NET中Response.BufferOutput屬性的使用技巧
BufferOutput屬性用于獲取或設(shè)置一個(gè)值,該值指示是否緩沖輸出并在處理完整個(gè)頁(yè)之后發(fā)送它。該屬性默認(rèn)值是true,因此我們通常的頁(yè)面中的輸出內(nèi)容都是在頁(yè)面處理完成之后才發(fā)送給客戶(hù)端由瀏覽器呈現(xiàn)出來(lái)。如果頁(yè)面要處理的內(nèi)容很多,可能很長(zhǎng)時(shí)間才能看到頁(yè)面上的內(nèi)容。這個(gè)時(shí)候有兩種方法可以讓信息逐步顯示,這樣就能知道當(dāng)前程序運(yùn)行到哪一步了。
方法1:BufferOutput默認(rèn)值為true,這個(gè)時(shí)候可以借助Flush方法和Clear方法將當(dāng)前緩沖區(qū)的信息輸出。這個(gè)方法比較通用,當(dāng)你的頁(yè)面在處理一個(gè)復(fù)雜的程序的時(shí)候,可以即時(shí)輸出一些提示信息。
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ShowInfo("中", 100); Response.Flush(); Response.Clear(); Thread.Sleep(1000); ShowInfo("國(guó)", 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ā)送給客戶(hù)端顯示。這種方法有性能問(wèn)題,因?yàn)闆](méi)有使用緩沖輸出,不過(guò)代碼簡(jiǎn)潔一些。
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Response.BufferOutput = false; ShowInfo("中", 100); Thread.Sleep(1000); ShowInfo("國(guó)", 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è)問(wèn)題需要注意:
一是IE瀏覽器在緩沖區(qū)數(shù)據(jù)不少于256字節(jié)的情況下才會(huì)輸出到客戶(hù)端,經(jīng)測(cè)試FF瀏覽器沒(méi)有這個(gè)問(wèn)題。
二是UFT8編碼的漢字一般占三個(gè)字節(jié)(Unicode編碼是兩個(gè)字節(jié)),這里第一次輸出100個(gè)漢字是為了保證至少有256個(gè)字節(jié)的數(shù)據(jù)。
以上就是本文的全部?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簡(jiǎn)化數(shù)據(jù)庫(kù)訪問(wèn)
- 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語(yǔ)法簡(jiǎn)介
相關(guān)文章
Entity?Framework?Core相關(guān)包的概念介紹與安裝
這篇文章介紹了Entity?Framework?Core相關(guān)包的概念與安裝方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03Asp.net中的GridView導(dǎo)出遇到的兩個(gè)問(wèn)題和解決方法
Asp.net下GridView導(dǎo)出遇到的兩個(gè)問(wèn)題與解決方法,需要的朋友可以參考一下。2009-12-12ASP.NET MVC限制同一個(gè)IP地址單位時(shí)間間隔內(nèi)的請(qǐng)求次數(shù)
這篇文章介紹了ASP.NET MVC限制同一個(gè)IP地址單位時(shí)間間隔內(nèi)請(qǐng)求次數(shù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10利用Asp.Net Core的MiddleWare思想如何處理復(fù)雜業(yè)務(wù)流程詳解
這篇文章主要給大家介紹了關(guān)于利用Asp.Net Core的MiddleWare思想如何處理復(fù)雜業(yè)務(wù)流程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起看看吧2018-08-08淺談?wù)l都能看懂的單點(diǎn)登錄(SSO)實(shí)現(xiàn)方式(附源碼)
這篇文章主要介紹了淺談?wù)l都能看懂的單點(diǎn)登錄(SSO)實(shí)現(xiàn)方式(附源碼),具有一定的參考價(jià)值,有需要的可以了解一下。2016-12-12ASP.net Menu控件在Google Chrome和Safari瀏覽器下顯示錯(cuò)位的解決辦法
在ASP.NET網(wǎng)站項(xiàng)目中添加Others.browser內(nèi)容如下2009-05-05Convert.ToInt32與Int32.Parse區(qū)別及Int32.TryParse
2個(gè)方法都可以把string轉(zhuǎn)換為int,那么他們有什么區(qū)別?什么時(shí)候該用什么?性能如何。 其實(shí)在2.0里還有Int32.TryParse也實(shí)現(xiàn)了同樣的效果。2009-01-01Mvc動(dòng)態(tài)注冊(cè)HttpModule詳解
本文主要介紹了Mvc動(dòng)態(tài)注冊(cè)HttpModule的方法。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-03-03IIS 瀏覽aspx頁(yè)面出現(xiàn)無(wú)法顯示XML頁(yè)的解決方法分享
這篇文章介紹了IIS 瀏覽aspx頁(yè)面出現(xiàn)無(wú)法顯示XML頁(yè)的解決方法,有需要的朋友可以參考一下2013-11-11