BufferOutput、Flush()、Clear()

作者:vkvi 来源:ITPOW(原创) 日期:2009-10-1

Response.BufferOutput

布尔类型,默认值为 true,表示是否将网页内容放在服务器缓冲区(有些文章这里译为“缓存”,不准确,应该用“缓冲”),然后整页发送它。

Response.Flush()

将服务器中缓冲区的内容立即发送到客户端。如果在每一句 Response.Write 后面跟上 Response.Flush(),那么就基本上相当于将 Response.BufferOutput 设置于 false:都是一有内容就向客户端发送,而不等所有 Write 语句完了再发送。

Response.Clear()

清除服务器缓冲区的内容,也就是说已经输出但还没有发送到客户端的内容都被清除。

示例

Response.BufferOutput = false;
 
for (int i = 0; i < 1000; i++)
{
    Response.Write(i.ToString());
    Response.Flush();
}
 
Response.Write("End");
Response.Clear();

由于 BufferOutput 为 false,所以每次 Write 后就立即输出到客户端,可以看到客户端的内容不是立即显示出来的,而是一点点的出来的。由于输出内容比较简短,所以效果可能不是特别明显,请观察滚动条可以看出来。

由于 BufferOutput 为 false,也就是没有使用缓冲区,所以 Flush() 和 Clear() 方法要不要都是一样的,因为这两个都是操作缓冲区的。

一般情况下,我们应该使用 BufferOutput 的默认值 true,除非输出内容特别多,为了让客户端能够尽快看到点内容,可以改变 BufferOutput 值或使用 Flush() 方法。

相关文章