我一直听说服务器端的ASP .NET
AJAX控件(比如UpdatePanels)虽然看起来不是真正的AJAX,但因为渲染并不完全在客户端.我试图更清楚地理解这一点.有人可以详细说明吗?
谢谢…
解决方法
UpdatePanels在AJAX循环中很早就出现了,它们很重(它们可以发出大约100-300k的
JavaScript).在幕后,UpdatePanels通过JavaScript XMLHttpRequest将整个页面发布回服务器.新页面使用正常页面生命周期生成,就像回发一样,但只有UpdatePanel内部的部分(以及更新ViewState等所需的部分)才会发送回客户端.从那里插入标记而没有可见的闪存或页面状态的中断.
大多数竞争的AJAX工具都倾向于超轻量级的实现,这些实现允许您通过Javascript发布或生成一小部分HTML,我想这是今天的主导方向,尤其是在ASP.NET世界之外.
通过网络发送的数据总量的差异很大 – 请参阅下面的链接.在低流量情况下,它可能没有什么区别,但在像StackOverflow这样的网站的情况下,它肯定会显示在带宽账单上.
总而言之,我认为UpdatePanels实际上不是AJAX是不公平的,因为他们通过异步JavaScript发布HTML – 只是在顶部有一个巨大的,通常很麻烦的框架. UpdatePanels有时会得到糟糕的说唱,但它们提供了非常简单的开发者体验.我经常发现它们在低流量情况下很有用.
更新:Here是一篇文章(旧的但仍然有效),用于检查与服务器之间的有效负载UpdatePanel.它还涉及Page Methods,它是一种基于Web Service的轻量级替代UpdatePanels.这是Microsoft AJAX经常被忽视的部分.