页面缓冲与Asp.Net的性能优化(设置Page.Buffer属性)
Asp.Net中的Page.Buffer这个属性用于缓冲页面的执行结果,一般在@ Page指令里设置,缺省值为true。这个属性对于优化Web程序性能比较有用,介绍如下:
Buffer设置为false:
页面不缓冲,执行出的结果陆续范围给浏览器,当页面内容很多的时候,会分成很多小部分发给浏览器,而且下一部分必须等上一部分被浏览器接收到之后才能开始执行并发送。
因此,如果是远程访问的话,页面的执行时间就会变得很漫长,因为页面的执行时间依赖于网络的传输速度。所以一般都不会设为false。
Buffer设置为true:
页面缓冲,执行的结果全部缓冲起来,然后一起发送到浏览器客户端。这种情况下页面的执行时间就不会依赖于网络速度了,因为在执行页面时并没有进行网络传输。
但也应该注意,设置buffer为true会造成网页响应时间变慢,如果是运行比较复杂的计算的页面,一直等待漫长的运算结束之后才给浏览器客户端发送内容是不恰当的(浏览器会长时间收不到任何内容)。一般的处理方式是执行一部分之后,手动调用flush方法把内容先发一部分到客户端。