使用UpdatePanels的ASP.NET AJAX

时间:2010-12-11 15:38:55

标签: asp.net ajax asp.net-ajax jquery

从概念上讲,我对AJAX的理解是异步并行发送到服务器的请求。当我在页面上使用多个UpdatePanels并触发多个异步回发时(例如使用按钮),我注意到第二个请求在第一个请求完成之前不会启动。

但是当我使用JQuery ajax并使用PageMethods / WebMethods时,我的请求会被并行处理。

为什么ASP.NET AJAX的行为方式存在差异?

此外,当我反复单击UpdatePanel中的按钮时, 中止 以前的请求。我期待他们排队。

任何帮助?

2 个答案:

答案 0 :(得分:2)

This blog post似乎可以解决您的问题并提供解决方案。他使用一些javascript来排队多个请求并将它们批量发送到服务器(我认为)。

答案 1 :(得分:2)

因为它必须表现那样。

UpdatePanel的异步回发仍然只是:回发。如果允许并行发生多个回发,则他们的新ViewState通常会彼此不同步。然后,下一个回发将抛出一个ViewState验证错误和/或在第三次回发完成后,其中一个回发对Page的状态的修改将会丢失。

另一方面,页面方法和Web服务调用不受WebForms ViewState或页面生命周期的阻碍。因此,由于浏览器的同时请求限制允许(通常为4-8,但在IE6等某些浏览器中仅为2),因此许多可能并行发生。