Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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# 分阶段构建页面的选项_C#_Asp.net - Fatal编程技术网

C# 分阶段构建页面的选项

C# 分阶段构建页面的选项,c#,asp.net,C#,Asp.net,不太确定我应该如何用最好的方式描述我的主题,但基本上我的问题如下。我的页面输出如下(简化格式) 到目前为止没有什么特别的,但是“sec3”的内容有时需要一段时间才能返回,页面的其余部分在那一刻徒劳地等待。一旦所有数据可用且内容完全呈现,页面就会提供给客户端 因此,我希望减少对某些节生成所需时间的依赖,并希望尽快将一个节输出到客户端,以便页面分阶段构建,而不是一次构建。我知道可以使用并行或异步方法来加速进程,但最终页面仍取决于呈现前最慢的块,这是我希望避免的行为 有人能帮我找到正确的方向吗?任

不太确定我应该如何用最好的方式描述我的主题,但基本上我的问题如下。我的页面输出如下(简化格式)


到目前为止没有什么特别的,但是“sec3”的内容有时需要一段时间才能返回,页面的其余部分在那一刻徒劳地等待。一旦所有数据可用且内容完全呈现,页面就会提供给客户端

因此,我希望减少对某些节生成所需时间的依赖,并希望尽快将一个节输出到客户端,以便页面分阶段构建,而不是一次构建。我知道可以使用并行或异步方法来加速进程,但最终页面仍取决于呈现前最慢的块,这是我希望避免的行为


有人能帮我找到正确的方向吗?任何关于这个主题的提示或好的阅读建议都将不胜感激。我们使用的是C#/asp.net 4.5,我建议在页面加载后通过ajax调用加载sec3(使用jquery很容易)

基本上:

1) 分离sec3标记并将其存储在单独的aspx页面中 2) 加载主页面时,通过ajax调用获取sec3部分


如果您查看针对ajax的jquery文档,您应该能够立即启动并运行它。

已经谢谢了,这种方法的一个问题(如果我错了,请纠正我)是ajax调用结果不会被Google或任何其他搜索引擎索引,这将是另一个有趣的问题——当然,另一个问题是如果人们禁用了javascript,尽管我不确定这是否是一个值得考虑的问题?好的,那么您是否有可能缓存web服务响应?这可能有用:这篇文章确实不错,它并不能满足我们的需求,因为浏览器兼容性也是一个问题(另一个问题…),但对于我正在进行的另一个项目,这确实是我需要仔细研究的问题。不幸的是,缓存不是一种真正的选择,因为数据不是“固定”的,而是一种动态返回。静态块已经缓存,但动态块是瓶颈
<html>
<head>
<body>
<section id="sec1"><!-- some .Net code used to generate this block, data source is xml, output is HTML --></section>
<section id="sec2"><!-- some other .Net code used to generate this block, data source is xml, output is HTML --></section>
<section id="sec3"><!-- This data is generated by using a webservice, return is HTML --></section>
</body>
</html>