日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

ASP.NET中Response.BufferOutput屬性的使用技巧_實用技巧

作者:夢想天空 ? 更新時間: 2022-09-03 編程語言

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

欄目分類
最近更新