Response.Flush和Response.BufferOutput

首先Response.Buffer属性现在已经过时,它存在的唯一目的仅仅是为了兼容asp。你应该使用Response.BufferOutput属性来替代它。

Response.Flush方法用来将缓冲区的数据立即输出到浏览器当中。你可以多次调用Response.Flush 方法,当这样使用时,浏览器将多次接受数据,而不是仅接受一次数据。

Response.BufferOutput是一个布尔值,指示是否缓冲输出并在整个页面在服务器端处理完毕后才发送缓冲区中的数据。true是其默认值。

服务器端是否缓存数据取决于Response.BufferOutput,当你将Response.BufferOutput的值设为true时,数据会缓存到buffer中,并在页面处理完毕后,将buffer中的内容一次性全部发到客户端。如果为false,则不缓冲数据,每执行一个response.write方法,数据就会立即发往客户端,数据的传送次数取决于你使用了多少个response.write方法,在这种情况下,使用response.Flush方法是没有意义的。只用当你将Response.BufferOutput属性的值设为true时,使用response.Flush方法才有意义。这时服务器端会将调用response.Flush方法时之前的所有response.write方法的数据发往客户端。

只要将Response.BufferOutput的值设置为true,一定会发送buffer里的内容,只是早晚、次数的问题,这就取决于Response.Flush方法了。

至于它们的作用,在一个很大很大的网页中,可以使用Response.Flush方法将数据分批发往客户端,这样就可以使浏览器先呈现一些html代码,并逐步完整呈现。这样可使用户减少等待时间。不过你要注意一下,发送的html代码必须是闭合完整的,否则有的浏览器不会立即呈现html,而是等待接受完整的html才呈现。否则使用它就没有效果了。

原文地址:https://www.cnblogs.com/yanergui/p/5014275.html