我有一个使用母版页的大型ASP.net网站。
我已经确定,如果用户可以在从数据库生成/处理/加载页面的其余部分时看到标题和导航,那么用户将获得更好的体验。
我做了一些简单的测试,我可以在page_load()中执行Response.Write(),然后执行Response.Flush(),并且IIs将使用chunked编码并立即将输出发送到浏览器,而其余的页面渲染。
我想做同样的事情,但只发送母版页标题和导航。
有关如何实现这一目标的任何指示?
使用ASP.net 4和IIs 7.5
修改
如果有人可以提供一些关于如何更改网站以使用AJAX而无需更改每个页面和链接的指示,我会很感激。谢谢!
答案 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)
我建议跟踪页面,并尝试弄清楚为什么页面呈现缓慢。以下可能会有所帮助...
使用DIV代替TABLE!
关于AJAX的使用,AFAIK ......没有捷径。您可以在母版页中使用AJAX脚本管理器,并将脚本管理器代理用于要对页面进行调整的页面。更改您的表单以引入更新面板,您应该对大多数页面都有好处。
答案 3 :(得分:2)