Ajax 架构中回调函数的使用

来源:互联网 发布:ios6 太多软件不支持 编辑:程序博客网 时间:2024/06/06 20:51

Ajax 架构中回调函数的使用

 

Servlet中有如下方法:
ciqsciManager.saveBody(b);
现在可以在其参数中增加一个回调方法
有如下两种情况.
(1)
  ciqsciManager.saveBody(b, function(backContent) {
    insertRow(b);  //在客户端页面上增加一行记录
    alert("结果"+backContent);
   }
  );
也就是说,增加了如下参数
   function(backContent) {
    insertRow(b);  //在客户端页面上增加一行记录
    alert("结果"+backContent);
   }
其中backContent是ciqsciManager.saveBody(b)的返回值,类型可以是Void,String,int等,也可以是List.

如果ciqsciManager.saveBody(b)执行成功,
则调用 上述function,执行js function : insertRow(b); 和 alert("结果"+backContent);
如果ciqsciManager.saveBody(b)执行失败,则不执行该js function,

另外执行失败后,还要判断ciqsciManager.saveBody(b)是否有抛出异常,
如果有,则把异常内容alert出来.
如果没有,则不错任何操作.

另外,我们还可以指定ciqsciManager.saveBody(b)执行失败后的操作
见第(2)种方法.

(2)
我们在ciqsciManager.saveBody(b)中插入一个对象作为最后一个参数:
该参数是个对象, 用{}括在一起.
其中有两个function,一个是callback,一个是errorHandler,
如果ciqsciManager.saveBody(b)执行成功,则执行callback,否则执行errorHandler.
其中errorHandler: function(e) 中的e是ciqsciManager.saveBody(b) 抛出的异常内容.

  {
   callback: function(del) {
    insertRow(b);
   },
   errorHandler: function(e) {
    alert("报错内容: "+e);
     }
  }

整个代码如下:

  ciqsciManager.saveBody(b, {
   callback: function(del) {
    insertRow(b);
   },
   errorHandler: function(e) {
    alert("报错内容: "+e);
     }
  });


回调函数的用处很大!
因为有时,我们需要根据后台操作的结果来做出不同的js代码响应.
举个例子:
我要向DB里插入一条记录,
如果插入成功了,我们就用js在客户端页面上也插入一条记录
如果插入失败了,就不做此操作,或者输出报错信息等.

原创粉丝点击