ASP.NET之AJAX Extensions的 Javascript调用

上次在修改评论模块的验证机制时,Ajax用到了AJAX Extensions。第一次把它用到实际作品中,也就难免犯错误,当时耗费了我不少的力气才找出错误的根源。故在此谈谈用后的一点思绪。

1.如果web服务中暴露给客户端调用的方法中需要用到Session,则需要设置EnableSession。如:

复制代码 
    [WebMethod(EnableSession = true)]
    public string DeleteCommentByID(int replayID)
    {
       //删除评论
}

每一个暴露给客户端的方法或者类都需要关键字[WebMethod],同时需要引入 System.Web.Script.Services空间,以及添加关键字[ScriptService]

2.如果前台Javascript调用后台类中的方法,传递的参数个数不一致,会导致页面下载、显示缓慢,呈现服务器忙的状态;运行调用方法的Javascript,IE提示错误“缺少对象”。

前台调用后台类方法的一般格式为[nameSpace].className.方法名称(param1,param2,……,succeededCallback, failedCallback, userContext).

  • nameSpace是命名空间;
  • className是类名称;
  • param1、param2……是传递的参数;
  • succeededCallback是成功调用后执行的Javascript函数;
  • failedCallback是调用失败后要执行的Javascript函数;
  • userContext是用户上下文对象。

在上述格式中,命名空间、succeededCallback、failedCallback、userContext是可选的。需要注意的是如果省略了 前面的某一个参数,却又保留了后面的参数,则需要为前面的参数留下空位置。如:[nameSpace].className.方法名称 (param1,param2,……,succeededCallback, , userContext)中省略了failedCallback但保留了userContext,则需要用双逗号留下空位置。

我不喜欢用UpdatePanel,因为我不能接受这个控件带来的程序性能。虽然说用了它可以大大减轻编程人员的负担——一个对Javascript一点 也不了解的人可以利用这个控件生成具有强大功能的Ajax页面,因为编程人员不必为Ajax页面写一句Javascript代码,可想而知此控件功能的牛 ×。不过如果遇到大量如同表格类数据,又需要分页、排序、修改、删除等功能的,如果对性能要求不是很高还是可以考虑它的,毕竟可以为我们节省开发时间。提 高了开发效率就降低了程序的运行性能,鱼和熊掌难以兼得啊。

http://www.goberl.com/archive/item29.aspx