一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

ASP.NET中Response.BufferOutput属性的使用讲解

时间:2022-09-20 编辑:坚强 来源:一聚教程网

这篇文章主要讲解的是关于ASP.NET中Response.BufferOutput属性的使用,感兴趣的小伙伴一起来看看吧。

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("
"); 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("
"); Response.Write(sb.ToString()); }

在使用的时候有两个问题需要注意:

一是IE浏览器在缓冲区数据不少于256字节的情况下才会输出到客户端,经测试FF浏览器没有这个问题。

二是UFT8编码的汉字一般占三个字节(Unicode编码是两个字节),这里第一次输出100个汉字是为了保证至少有256个字节的数据。

以上就是ASP.NET中Response.BufferOutput属性的使用讲解的全部内容了,感兴趣的小伙伴记得点击观看一下哦。

热门栏目