我可以早期使用ASP.NET刷新缓冲区吗?

时间:2009-03-24 19:12:51

标签: asp.net optimization

雅虎的

Best Practices for Speeing Up Your Web Site包含以下建议:

  

当用户请求页面时,后端服务器可能需要200到500毫秒才能将HTML页面拼接在一起。在此期间,浏览器在等待数据到达时处于空闲状态。在PHP中,您有函数flush()。它允许您将部分准备好的HTML响应发送到浏览器,以便浏览器可以在后端忙于HTML页面的其余部分时开始获取组件。这种好处主要出现在繁忙的后端或轻量级前端。

     

考虑刷新的好地方就在HEAD之后,因为头部的HTML通常更容易生成,并且它允许您包含任何CSS和JavaScript文件,以便浏览器在后端处理时仍然并行启动。

     

示例:

... <!-- css, js -->
</head>
<?php flush(); ?>
<body>
... <!-- content -->

请注意,此处刷新的位置是在写入head标记之后。这很有意义,因此浏览器可以开始加载图像和脚本,同时渲染和提供页面的其余部分。

有没有办法在显式使用ASP.NET后清除头部(或页面的任何其他部分)?

2 个答案:

答案 0 :(得分:10)

您应该能够在页面的末尾和正文声明的开头之间添加以下内容:

<% Response.Flush(); %>

但是,如果您正在使用脚本管理器或任何其他类型的控件来注意自己在html的head部分输出,请小心。

答案 1 :(得分:3)

您可能希望在页面顶部的@Page标记中显式设置Buffer = true,以避免Response.Flush()抛出错误。