JavaScript SOAP客户端

电脑杂谈  发布时间:2020-05-21 04:11:31  来源:网络整理

js 调用客户端软件_js文件调用另一个js_vbnet调用前台js调用后台代码

简介

关于AJAX的许多讨论在这里和那里发生. AJAX基于“异步JavaScript和XML”的缩写,并且XMLHttpRequest现在在所有主流浏览器中都支持该技术. 基本想法很简单-实际上不是突破-但它允许在服务器请求后更新页面,而不必重新加载整个数据集. 可以在百度或Google上找到一些示例.

在本文中,我们提出了一种基于AJAX的解决方案,该解决方案在Internet的常见方面(调用Web服务)具有很大的优势.

在服务器端,我们只需要使用必要的方法公开Web Service(而不是生成包含基于自定义语法或常规XML的数据的动态页面). 在客户端,我们使用WSDL(Web服务描述语言)自动生成JavaScript代理类,以允许使用Web服务返回类型,这类似于Visual Studio在向解决方案添加Web引用时所做的事情.

下图显示了异步调用的SOAP客户端的工作流程:

客户

SOAPClient.invoke

vbnet调用前台js调用后台代码_js 调用客户端软件_js文件调用另一个js

使用JavaScript函数调用“”方法并指定以下内容:

Web服务URL(请注意,出于安全原因,许多浏览器不允许跨域调用). Web方法名称. Web方法参数值. 呼叫模式(async = true,sync = false). 响应于接收而调用的回调方法(对于同步调用是可选的. )

“ SOAPClient.invoke”方法执行以下操作(有关数字,请参见上图):

它获取WSDL并缓存未来请求的描述. 它准备SOAP(1.1版)请求(调用方法和参数值)并将其发送到服务器. 它使用WSDL处理服务器回复,以构造要返回的相应JavaScript对象. 如果调用方式为异步,则调用回调方法,否则返回相应的对象.

使用代码

在公开了有关通过JavaScript使用Web服务的想法之后,我们只需要分析代码.

让我们从定义要传递给Web方法的参数的类开始: “ SOAPClientParameters”:

js文件调用另一个js_js 调用客户端软件_vbnet调用前台js调用后台代码

该代码仅由内部字典(关联数组)组成,该字典包含参数名称(键)和相关值; “ add”方法允许添加新参数,“ toXml”方法为SOAP请求提供XML序列化(请参阅“ SOAPClient._sendSoapRequest”).

让我们定义“ SOAPClient”类,该类只能包含允许异步调用的静态方法js 调用客户端软件,并且该类中只有一个“ public”方法: “ SOAPClient.invoke”.

注意: 由于JavaScript无法预见访问修饰符(例如“ public”js 调用客户端软件,“ private”,“ protected”等),因此我们将使用“ _”前缀表示私有方法.

“ SOAPClient.invoke”方法的接口如上所述. 我们的实现检查调用是异步的(调用结果将传递到回调方法)还是同步的(调用结果将直接返回). 通过调用“ SOAPClient._loadWsdl”方法开始对Web服务的调用:

此方法在缓存中搜索相同的WSDL,以避免重复调用:

SOAPClient_cacheWsdl =新数组();

vbnet调用前台js调用后台代码_js文件调用另一个js_js 调用客户端软件

如果在高速缓存中未找到WSDL(这是当前上下文中的第一个调用),则XMLHttpRequest使用请求根据所需的模式从服务器请求WSDL(无论是否同步). 从服务器获得答案后,​​SOAPClient._onLoadWsdl将调用“”方法:

WSDL副本存储在缓存中,然后执行“ SOAPClient._sendSoapRequest”方法:

服务名称空间来自WSDL(使用Internet Explorer和Mozilla / FireFox使用不同的XPath查询),然后创建并提交对SOAP版本1.1的请求. “

SOAPClient._onSendSoapRequest“,将在收到服务器响应时调用该方法:

vbnet调用前台js调用后台代码_js文件调用另一个js_js 调用客户端软件

处理服务器响应以查找故障: 如果找到,将引发错误. 相反,如果获得正确的结果,则递归函数将使用服务描述来生成返回类型:

“ SOAPClient._getElementsByTagName”方法根据可用的XML解析器优化XPath查询:

工厂函数XMLHttpRequest根据浏览器类型返回:

通过使用小的(小于10 KB)JavaScript库,并且在服务器端,您可以使用AJAX创建动态Web应用程序,而无需通过简单地使用远程方法公开Web服务来公开整个页面.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-217312-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...