扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:老赵点滴 来源:博客园 2007年11月6日
关键字: Windows
1 this.invoke( 2 { 3 param1 : value1, 4 param2 : value2, 5 …… 6 }, 7 { 8 onMethodComplete : ……, 9 onMethodTimeout : ……, 10 onMethodError : ……, 11 onMethodAborted : ……, 12 userContext : ……, 13 timeoutInterval : ……, 14 priority : ……, 15 useGetMethod : …… 16 }); |
1 this.invoke( 2 { 3 param1 : value1, 4 param2 : value2, 5 …… 6 }, 7 onMethodComplete, 8 onMethodTimeout, 9 onMethodError, 10 onMethodAborted, 11 userContext, 12 timeoutInterval, 13 priority, 14 useGetMethod); |
1 // 参数定义: 2 // params:一个Dictionary,用key - value的方式保存即将传递给Web Services的参数 3 // onMethodComplete:调用完成时使用的回调函数 4 // onMethodTimeout:请求超时时使用的回调函数 5 // onMethodError:Web Services发生错误(例如抛出异常)时使用的回调函数 6 // onMethodAborted:请求被取消是使用得回调函数 7 // userContext:用户提供的任意参数,会在回调函数被执行时作为参数使用 8 // timeoutInterval:超时前所等待的时间,Number类型 9 // priority:优先级,Sys.Net.WebRequestPriority枚举类型 10 // useGetMethod:是否使用HTTP GET方法,Boolean类型 11 this._invoke = function(params, onMethodComplete, 12 onMethodTimeout, onMethodError, onMethodAborted, userContext, 13 timeoutInterval, priority, useGetMethod) { 14 15 // 检测参数类型是否正确 16 window.debug.validateParameters("WebMethod.Invoke", arguments, 17 [ 18 ['params', Object, true], 19 ['onMethodComplete', Function, true], 20 ['onMethodTimeout', Function, true], 21 ['onMethodError', Function, true], 22 ['onMethodAborted', Function, true], 23 ['timeoutInterval', Number, true], 24 ['priority', Number, true], 25 ['useGetMethod', Boolean, true] 26 ]); 27 28 // 使用Sys.Net.WebRequest对象进行AJAX请求 29 var request = new Sys.Net.WebRequest(); 30 31 // 使用子类的addHeaders实现添加Header 32 this.addHeaders(request.get_headers()); 33 // 使用子类的实现set_url实现设置url 34 request.set_url(this.get_url(params, useGetMethod)); 35 // 使用子类的实现set_appUrl实现设置appUrl 36 request.set_appUrl(this.get_appUrl()); 37 38 // 为了添加body,param不能为null 39 if (params == null) { 40 params = {}; 41 } 42 43 // 使用子类的set_body实现设置body 44 request.set_body(this.get_body(params, useGetMethod)); 45 // 将onComplete函数注册给Sys.Net.WebRequest的complete事件 46 request.completed.add(onComplete); 47 // 将onTimeout函数注册给Sys.Net.WebRequest的timeout事件 48 request.timeout.add(onTimeout); 49 // 将onAborted函数注册给Sys.Net.WebRequest的aborted事件 50 request.aborted.add(onAborted); 51 52 // 如果提供了timeoutInterval那么设置它 53 if (timeoutInterval) { 54 request.set_timeoutInterval(timeoutInterval); 55 } 56 57 // 如果priority不是Sys.Net.WebRequestPriority.High的话, 58 // 则设置WebRequest的Priority属性 59 if (priority >= 0) { 60 request.set_priority(priority); 61 } 62 63 // 获得methodName,为后面的onXXXX方法提供信息 64 var methodName = this.get_methodName(); 65 66 request.invoke(); 67 68 function onComplete(response, eventArgs) { 69 …… 70 } 71 72 function onTimeout(request, eventArgs) { 73 …… 74 } 75 76 function onAborted(request, eventArgs) { 77 …… 78 } 79 80 //返回Sys.Net.WebRequest对象,一般没有什么作用 81 return request; 82 } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者