您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp.net >> 正文

深度解析ASP.NET2.0中的Callback机制(2)

作者:作者:te…    信息学院来源:网络收集    点击数:    更新时间:2006-8-28 我要参与讨论

  Object.xmlRequest.responseText;
   if (response.charAt(0) == "s") {
    if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
     callbackObject.eventCallback(response.substring(1), callbackObject.context);
    }
   }
   else if (response.charAt(0) == "e") {
    if ((typeof(callbackObject.errorCallback) != "undefined") && (callbackObject.errorCallback != null)) {
     callbackObject.errorCallback(response.substring(1), callbackObject.context);
    }
   }
   else {
    var separatorIndex = response.indexOf("|");
    if (separatorIndex != -1) {
     var validationFieldLength = parseInt(response.substring(0, separatorIndex));
     if (!isNaN(validationFieldLength)) {
      var validationField = response.substring(separatorIndex + 1, separatorIndex + validationFieldLength + 1);
      if (validationField != "") {
       var validationFieldElement = theForm["__EVENTVALIDATION"];
       if (!validationFieldElement) {
        validationFieldElement = document.createElement("INPUT");
        validationFieldElement.type = "hidden";
        validationFieldElement.name = "__EVENTVALIDATION";
        theForm.appendChild(validationFieldElement);
       }
       validationFieldElement.value = validationField;
      }
      if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
       callbackObject.eventCallback(response.substring(separatorIndex + validationFieldLength + 1),         callbackObject.context);
      }
     }
    }
   }
  }
  
  //获取对应的回调对象
  function WebForm_FillFirstAvailableSlot(array, element) {
   var i;
   for (i = 0; i < array.length; i++) {
    if (!array[i]) break;
   }
   array[i] = element;
   return i;
  }
  
  //再下面是一些辅助函数和与callback关系不大的函数,我就不列出来了,有兴趣的朋友可以自己看看
  //
  
    从以上代码我们可以很明白的看到,系统判断您的浏览器是否支持XMLHTTP或IFRAME,如果至少支持其中之一,则用相应的方法执行回调,否则当然就是提示错误了。回调的时候,采用post的方式,异步post到当前页面,然后等待回调结束,此时,由我们指定的返回数据处理script函数来处理返回的数据。
  
    看到这里,我还不知道服务端怎么处理这个根据传过来的参数解析、执行,并返回数据的过程。但是,我们已经知道,WebForm_DoCallback(...)将会将当前页面的web控件的信息都post回去,这就意味着,我们在服务端有可能可以访问到这些web控件的value,这还不错,方便了我们处理当前数据。另一方面,eventArgument既然是一个任意格式的字符串参数,我们肯定要在服务段自己解析它的。
  
  
  

上一页  [1] [2] [3] [4] [5] 下一页

在google里搜索更多深度解析ASP.NET2.0中的Callback机制(2)

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明