網站首頁 編程語言 正文
BufferOutput屬性用于獲取或設置一個值,該值指示是否緩沖輸出并在處理完整個頁之后發送它。該屬性默認值是true,因此我們通常的頁面中的輸出內容都是在頁面處理完成之后才發送給客戶端由瀏覽器呈現出來。如果頁面要處理的內容很多,可能很長時間才能看到頁面上的內容。這個時候有兩種方法可以讓信息逐步顯示,這樣就能知道當前程序運行到哪一步了。
方法1:BufferOutput默認值為true,這個時候可以借助Flush方法和Clear方法將當前緩沖區的信息輸出。這個方法比較通用,當你的頁面在處理一個復雜的程序的時候,可以即時輸出一些提示信息。
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,這個時候緩沖區的內容會立即發送給客戶端顯示。這種方法有性能問題,因為沒有使用緩沖輸出,不過代碼簡潔一些。
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瀏覽器在緩沖區數據不少于256字節的情況下才會輸出到客戶端,經測試FF瀏覽器沒有這個問題。
二是UFT8編碼的漢字一般占三個字節(Unicode編碼是兩個字節),這里第一次輸出100個漢字是為了保證至少有256個字節的數據。
原文鏈接:https://www.cnblogs.com/lhb25/archive/2009/12/22/1629622.html
相關推薦
- 2022-05-12 uni-app混合原生安卓開發
- 2022-02-24 JDBC中在結果集中以列順序獲取值時注意類型匹配
- 2022-10-12 字節封裝React組件手機號自動校驗格式FormItem_React
- 2023-04-03 Python數據結構棧實現進制轉換簡單示例_python
- 2022-03-21 詳解C++內存的代碼區,全局區,棧區和堆區_C 語言
- 2023-11-23 nginx偽靜態try_files命令解讀
- 2022-10-24 React報錯之Parameter?event?implicitly?has?an?any?type
- 2022-08-19 python中的函數和變量的用法
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支