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

本文关键字:标题 母版页 NET ASP | 更新日期: 2023-09-27 17:53:30

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

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

我已经做了一些简单的测试,我可以在page_load()中执行Response.Write(),然后是Response.Flush(),并且IIs将使用分块编码并在页面的其余部分呈现时立即将输出发送到浏览器。

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

关于如何实现这一点,有什么建议吗?

使用ASP.net 4和IIs 7.5

编辑

如果有人能给一些指针如何改变网站使用AJAX而不必改变每个页面和链接,我很感激。谢谢!

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

如果您在某个时刻手动刷新响应流并且不手动设置内容长度,它将启用分块编码。

这个问题似乎是相关的:我如何在ASP中显式或隐式地将Transfer-Encoding设置为块。净反应?

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

我建议您使用控件缓存。Asp。Net提供页面和控件的本机缓存。请看这些链接了解更多。

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

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

ASP。网络缓存

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

控制缓存

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

control.GetCachePolicy()

我建议跟踪页面,并尝试找出页面呈现缓慢的确切原因。

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

并使用div来代替table !

关于AJAX的使用,AFAIK…没有捷径可走。您可以在母版页中使用AJAX脚本管理器,并在希望AJAX化页面的页面上使用脚本管理器代理。改变你的表单,引入一个更新面板,你应该对大多数页面都很好。

这可能对您有帮助。我总是使用慢速FF和firebug来检查性能。

https://addons.mozilla.org/en-us/firefox/addon/yslow/

https://addons.mozilla.org/en-US/firefox/addon/firebug/

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

http://developer.yahoo.com/performance/rules.html

谢谢