如何在ASP.NET母版页中的内容之前逐步呈现标头?

时间:2011-04-28 23:59:06

标签: c# asp.net iis-7 master-pages

我有一个使用母版页的大型ASP.net网站。

我已经确定,如果用户可以在从数据库生成/处理/加载页面的其余部分时看到标题和导航,那么用户将获得更好的体验。

我做了一些简单的测试,我可以在page_load()中执行Response.Write(),然后执行Response.Flush(),并且IIs将使用chunked编码并立即将输出发送到浏览器,而其余的页面渲染。

我想做同样的事情,但只发送母版页标题和导航。

有关如何实现这一目标的任何指示?

使用ASP.net 4和IIs 7.5

修改

如果有人可以提供一些关于如何更改网站以使用AJAX而无需更改每个页面和链接的指示,我会很感激。谢谢!

4 个答案:

答案 0 :(得分:3)

如果您手动刷新响应流并且不手动设置内容长度,则会启用分块编码。

这个问题似乎有关:How can I set Transfer-Encoding to chunked, explicitly or implicitly, in an ASP.NET response?

这篇博客文章讨论了响应刷新和分块编码:http://www.rahulsingla.com/blog/2010/06/asp-net-sets-the-transfer-encoding-as-chunked-on-premature-flushing-the-response

答案 1 :(得分:2)

我建议你使用控件缓存。 Asp.Net提供页面和控件的本机缓存。 请参阅这些链接以了解更多信息。

ASP.NET缓存:技术和最佳实践

http://msdn.microsoft.com/en-us/library/aa478965.aspx

ASP.NET缓存

http://msdn.microsoft.com/en-us/library/xsbfdd8c(v=VS.100).aspx

控制缓存

正如您所提到的,您似乎已经使用了页面缓存。尝试使用控制缓存来进一步改进缓存。要使用控件缓存,请将PartialCachingAttribute放在控件类上。 您可以使用控件的ControlCachePolicy来设置缓存行为:

control.GetCachePolicy()

答案 2 :(得分:2)

我建议跟踪页面,并尝试弄清楚为什么页面呈现缓慢。以下可能会有所帮助...

http://www.dotnetscraps.com/dotnetscraps/post/How-to-troubleshoot-issues-with-Page-Rendering-in-ASPNET.aspx

使用DIV代替TABLE!

关于AJAX的使用,AFAIK ......没有捷径。您可以在母版页中使用AJAX脚本管理器,并将脚本管理器代理用于要对页面进行调整的页面。更改您的表单以引入更新面板,您应该对大多数页面都有好处。

答案 3 :(得分:2)