asp.net中的每个回发都必须贯穿整个页面循环吗?

时间:2010-12-05 00:12:41

标签: javascript asp.net

无论是部分更新还是完全更新,每次回发到asp.net服务器都会导致运行整页生命周期。这意味着,page_preinit,page_init,page_load函数在我们想要运行我们想要显示的内容之前运行。

有时候,我们可能需要改变一件小事,但整个页面生命周期的运行缓慢很糟糕。

任何帮助。任何技术?

3 个答案:

答案 0 :(得分:4)

以下是一些帮助:

请勿使用过多代码重载页面生命周期事件。

检查您的方法,如果您处于回复,异步回发或常规请求中,那么您只运行所需的代码。

如果您正在运行代码,则不应该在每个小回发上运行,这是您自己的错误。生命周期允许您做任何您需要做的事情。如果您选择运行不必要的代码,请不要责怪微软。

答案 1 :(得分:2)

您可以使用JavaScript仅更新客户端上的部分页面,而无需重新加载整个页面。这是Microsoft's take on it

答案 2 :(得分:0)

页面事件生命周期是asp.net表单工作方式的基础,除非您想为特定的URL /请求编​​写http处理程序,否则无法避免(使用错误的工具来解决问题) 。

然而,asp.net页面事件周期并不慢 - 它非常快。除非你已经做了一些事情来在这些事件中添加代码以减慢速度。如果您的回发很慢,您需要对正在进行的活动进行概要分析,或者调试正在进行的活动,而不是试图避免页面生命周期。

你可以转移到ASP.net MVC(它可以与asp.net webforms并存)。它有一个更简单的事件模型可供使用。这并不意味着你不能通过过滤器使用额外的代码来重载它,就像人们加载asp.net页面生命周期事件一样。转移到asp.net mvc只是为了解决asp.net页面加载时间的性能问题,有点像打开一个新的支票账户,当你无法让旧的支票账户平衡...它只会暂时缓解:):)