Microsoft AJAX部分回发,是使用Web服务的最佳实践吗?

时间:2009-04-15 21:33:55

标签: c# asp.net web-services asp.net-ajax

我真的很困惑,因为我阅读了很多地方,更新面板发回完整的帖子,我已经知道网络服务的性能要好得多,所以如果我正在开发我的网站应该用户网络服务或正常的功能如下

   protected void Page_Load(object sender, EventArgs e)
{
  GetDate();
}
protected void Button1_Click(object sender, EventArgs e)
{

}
[WebMethod()]
protected DateTime GetDate()
{
    return DateTime.Now;
}
  • 我会使用回帖吗?
  • Web服务的缺陷是什么,特别是在AJAX网站上?
  • 您对使用Microsoft AJAX最佳性能的最佳建议是什么?

2 个答案:

答案 0 :(得分:2)

网络服务可以帮助您解决整个视图问题 但是,是的,我认为使用网络服务是在网络世界中获得最大收益的最佳实践。

尽可能避免回复/回电。

陷阱:在创建Web服务时,您必须通过ViewState传递通常拥有的所有数据。

我强烈建议使用JQuery。它会有很多帮助。

对于Web服务性能:使用JSON(ScriptMethod)而不是XML来回移动数据。

编辑:关于ViewState的混乱。 如果你不小心ViewState(用于序列化控件,并且是页面上的隐藏字段)可以快速增长非常大。每次回发时,此数据都会从浏览器发送到服务器 - 但不适用于Web服务。这可以使Web服务调用明显快于回发(对于具有大型ViewStates的页面)。 ViewState不是邪恶的,但你想留意它。

在具有runat ='server'的Web控件与服务器上执行的代码之间的转换之间的任何位置都可能发生回发。例如:按钮单击事件导致回发。

Asp.Net开发人员喜欢回发,因为它们易于实现(IDE将它们连接起来)。
Web服务稍微难点,需要一些(小)JavaScript知识。

另一个简单的选择是使用UpdatePanels。但仍然使用ViewState。

答案 1 :(得分:1)

就个人而言,我会考虑使用jQuery来调用ASP.NET MVC动作;更简单的管道,你知道究竟什么是上下线。