Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET母版页中逐步呈现内容之前的标题?_C#_Asp.net_Iis 7_Master Pages - Fatal编程技术网

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

C# 如何在ASP.NET母版页中逐步呈现内容之前的标题?,c#,asp.net,iis-7,master-pages,C#,Asp.net,Iis 7,Master Pages,我有一个使用母版页的大型慢速ASP.net网站 我已经确定,如果用户在从数据库生成/处理/加载页面的其余部分时能够看到标题和导航,那么他们会有更好的体验 我已经做了一些简单的测试,我可以在page_load()中执行Response.Write()和Response.Flush(),IIs将使用分块编码,并在页面其余部分呈现时立即将输出发送到浏览器 我想做同样的事情,但只发送母版页标题和导航 有没有关于如何实现这一点的建议 使用ASP.net 4和IIs 7.5 编辑 如果有人能就如何在不必更改

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

我已经确定,如果用户在从数据库生成/处理/加载页面的其余部分时能够看到标题和导航,那么他们会有更好的体验

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

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

有没有关于如何实现这一点的建议

使用ASP.net 4和IIs 7.5

编辑


如果有人能就如何在不必更改每个页面和链接的情况下将站点更改为使用AJAX给出一些建议,我将不胜感激。谢谢

如果您在某个点手动刷新响应流,而不手动设置内容长度,则将启用分块编码

这个问题似乎是相关的:


这篇博文讨论了响应刷新和分块编码:

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

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

ASP.NET缓存

控制缓存

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

control.GetCachePolicy()

我建议跟踪页面,并尝试找出页面渲染速度慢的原因。以下内容可能会有所帮助

使用div代替表格


关于AJAX的使用,AFAIK。。。没有捷径可走。您可以在母版页中使用AJAX脚本管理器,并使用脚本管理器代理来访问要AJAX页面的页面。更改您的表单以引入更新面板,您应该适合大多数页面。

这可能会对您有所帮助。 我总是使用yslow for FF和firebug来检查性能


谢谢

您能做些什么来缩小页面吗?可能的话关闭viewstate,等等?一个更好的解决方案是分析页面,找到它们阻塞的位置(我保证是在数据库调用中),然后卸载这些数据库调用,使之异步,或者使用AJAX独立于页面内容加载它们。缓存调用可能也足够了,这取决于调用的内容。@Chris我会这样做,但这不是一个数据库调用。这是一个完整的存储过程调用(由我们的dba编写),如果不切分数据库或其他东西,就无法进行更多优化。缓存已经到位,但大多数情况下,由于页面太多,这并没有帮助。虽然使用AJAX是理想的,但我不知道如果不重新设计整个站点,如何做到这一点。(让我知道是否有简单的方法来做到这一点!!!)记住,这个网站有数百个页面,基于客户端有几十个不同的母版页。这不是一个简单的网站。根据你所说的,你已经需要重新设计整个网站。您已经达到了应用程序固有设计的性能极限。即使你成功地实现了这个问题所要达到的目标,但它显然并不能解决你的问题,它只会为你赢得更多的时间来解决这个问题。听起来,您当前的设计刚刚达到了失败的地步,是时候重新开始新的设计,开始替换应用程序中最大的价值赢家了。我已经在MVC3中重写了这些新内容,你也可以作弊,然后在站点中构建它。使用ajax是什么意思。。。我看到了两种含义:1)页面加载后,使用ajax自动加载页面的其他部分。2) 当用户单击某个内容时,使用ajax更改已经加载的页面。我想你说的是第一个。。。我说得对吗?在这种情况下,UpdatePanel无法解决您的问题。。。在第二种情况下,它确实非常无缝地解决了问题。我已经知道我可以调用Response.Flush()来设置分块编码。我只需要能够在以某种方式填充主要内容之前调用Render()。我需要呈现母版页的页眉和页脚。赏金在10分钟后结束,你得到了最有用的答案,但不是我的问题。格拉茨。