UpdatePanel与“传统”AJAX有何不同?

时间:2009-08-31 01:53:34

标签: asp.net ajax updatepanel

我的朋友告诉我,因为我只在我的asp.net网站上使用更新面板,所以我真的没有使用直接的AJAX功能。他在说什么?

10 个答案:

答案 0 :(得分:8)

严格的AJAX意味着使用异步Javascript(使用JS XmlHttpRequest对象)和XML(或JSON)。这意味着要对服务器或其他服务进行非常轻量级的调用,获取结果,并在客户端以某种方式处理它们。双方(请求和响应处理)都需要编写Javascript。

ASP.NET UpdatePanels执行此操作,但“隐藏”您的所有详细信息。也就是说,他们的数据传输有效负载“看起来”像标准形式的POST,并且返回的数据实际上是一个HTML块,实际上插入/替换到当前页面。

这使得服务器上的呼叫“更重”(因为必须完成整个页面生命周期)和带宽使用。 ASP.NET MVC等新技术不需要/使用UpdatePanels并且可以使用轻量级JSON服务来返回数据,但是您必须在客户端编写Javascript以“处理它”(以某种方式将其绑定到UI)。 / p>

答案 1 :(得分:3)

UpdatePanels正在使用ajax,但你已经远离它真正的工作方式了。

当你使用UpdatePanels时,ajax是“免费”的 - 虽然当你到达一个包含大量UpdatePanel的大型应用程序时,这对于小型应用程序来说很酷,但他们会fall down。当发生这种情况时,我冒昧地猜测大多数 asp.net开发者不会知道从哪里开始,因为底层技术已被隐藏起来。

让你的伙伴高兴并告诉他你开始使用jQuery;)

答案 2 :(得分:3)

他可能会谈到UpdatePanel收到的数据比你可能想要的要多得多。本网站提供了一些很好的例子:Why ASP.NET AJAX UpdatePanels are dangerous。这是来自同一网站的另一个页面,它在Are you making these 3 common ASP.NET AJAX mistakes?上提供了一些很好的指示。

答案 3 :(得分:2)

严格来说,我必须同意UpdatePanel实际上是AJAX。

大多数人认为AJAX比UpdatePanel更精简。网页上的许多ajax功能涉及执行一些非常具体的活动 - 使用客户端HTTP请求处理服务器上的某些信息,获取响应,然后根据响应更新页面上的内容。

UpdatePanel以相同的方式运行,但在更宏的层面上运行。 UpdatePanel包含的代码基本上将表单或表单元素发布回页面,使得从服务器端透明,您可以像使用UpdatePanel一样处理和处理回发事件。

与UpdatePanel关联的JavaScript库然后只刷新更新面板中包含的页面部分。

与UpdatePanel捆绑在一起的JavaScript确实使用http请求发布数据并在响应中接收Xml - 这也是异步的。所以,它是AJAX。细节只是对你隐藏。仅仅因为你没有直接操纵请求并处理响应并不意味着它不是AJAX。然而,UpdatePanel比许多人认为的典型AJAX实现更多的流量/有效载荷。

答案 4 :(得分:0)

我不知道。

通过使用更新面板,引擎盖下的.net ajax正在请求该页面的内容并将其放入面板中。这是一个相当经典的'ajax'实现。

他可能指的是使用ajax调用发布数据,ajax面板也包含这些调用,但是以不同的方式使用jQuery来实现它。

答案 5 :(得分:0)

也许他很不高兴你拥有非常出色的跨浏览器AJAX功能,而不必遭受千万张JavaScript剪纸。

答案 6 :(得分:0)

更新面板ARE AJAX Extensions,如果这就是您所要求的。 ASP.NET says so!

答案 7 :(得分:0)

也许他希望你完全使用AJAX Control工具包 - 即实现dragPanels,HTMLEditor,Calendar,动画,手风琴等等。

如果是这样,请以同样的方式向他展示中指手势:)

答案 8 :(得分:0)

他可能指的是client-side library for ASP.NET AJAX,它可让您直接访问支持更新面板的AJAX。

他认为更新面板不依赖核心ajax技术是错误的 - 他们这样做。他可能是正确的,因为你可以使用AJAX做更多的事情,然后更新面板允许。

答案 9 :(得分:0)

这可能听起来有点主观,但我有一些非常好的经验和一些非常糟糕的UpdatePanel经验(是的,UpdatePanel是真正的 AJAX)。

良好: UpdatePanel可以轻松地将AJAX功能轻松地改装到现有网页中,而无需进行重大改写。

错误: UpdatePanel回发所有页面数据。由于这个原因,我看到了很多性能问题。如果传统的ASP.Net页面具有足够大小的视图状态数据,那么UpdatePanel将无法很好地执行。此视图状态数据在服务器上可用是方便的,但在用户数量和大数据集中都不能很好地扩展。

与程序员可以使用的许多工具一样,UpdatePanel既不好也不坏。这取决于用法。