javascript实例教程(20) OLE Automation(2)

2016-01-29 11:32 1 1 收藏

javascript实例教程(20) OLE Automation(2),&#106avascript实例教程(20) OLE Automation(2)

【 tulaoshi.com - Javascript 】

  使用JavaScript中的OLE Automation

2. 什么是绑定

在你适用一个对象模型的属性、方法和事件之前,你必需首先创建一个计划性的引用给包含了你想适用的属性、方法或者事件的类。你可以通过声明一个局部对象变量以保留一个引用给这个对象来实现这个目的。然后,你要为局部变量指定一个对象的应用。

VB和VBScript使用CreateObject()函数,来实现在Jscript使用这个ActiveXObject()构造函数的时候为一个Automation对象允许并返回一个引用。

实际上,绑定是指Visual Basic代码访问在其它的应用程序对象的方法。当你从一个应用程序使用Automation来处理另外一个应用程序中对象的时候,你编写Visaul Basic代码的应用程序就是一个Automation控制器。这个你正在处理对象的应用程序是Automation服务器。当一个Automation控制器创建一个指向由Automation服务器提供对象的变量,Visual Basic 必需验证对象是否存在以及使用对象的任何属性和方法是正确指定的。这个验证过程就所谓的”绑定”。有两种Visual Basic程序开发人员使用的绑定类型要注意: late binding(迟绑定) 和 early binding(早绑定)。

迟绑定

迟绑定是发生在运行时间并且比早绑定要慢。在迟绑定Automation代码中,Visual Basic在每次执行包括那个对象的行代码时必需查询对象以及它的方法和属性。为了验证这个对象以及它的方法和属性是否正确指定,Visual Basic 必需利用操作系统和支持对象的应用来检查。下面看看一段Visual Basic 代码:

Dim wdApp As Object

Set wdApp = CreateObject("Word.Application")


这个wdApp变量被定义为一般类型的对象。当这个变量被声明了,Visual Basic 并不知道它是属于什么类型的对象,所以你必须要为这个对象留出一定量的内存。既然特定对象引用是被指定到普通变量的,所以应用程序没有办法知道对象的界面是由什么组成的。只有在运行时间,应用程序才绑定到用户界面上。因此,不管你是什么时候引用新的对象,Visual Baisc必须检查系统注册以获得对象的信息。

早绑定

早绑定是一个解决慢Automation性能的好的解决方法。早绑定发生在编译的时候而不是在运行的时候,所以如果你的代码是在编译阶段保存的,在代码运行之前已经绑定结束了。当使用早绑定,Visual Basic 不需要连续验证对象信息,而是在应用程序执行的过程中使用对象。

另外,不是所有的Automation服务器都支持早绑定。这个Automation服务器必须支持一个类型库,这个类型库包含了关于服务器对象、方法和属性的信息。为了利用早绑定,你必须为Automation服务器的类型库设置一个引用。Visual Basic装载类型库到内存中,这使得它可以识别这些对象并且在代码编译的时候绑定它们。以下的代码段显示了怎样为对象创建一个早绑定界面:

Dim wdApp As Word.Application

Set wdApp = CreateObject("Word.Application") 

来源:https://www.tulaoshi.com/n/20160129/1482602.html

延伸阅读
标签: Web开发
使用javascript中的OLE Automation 3. 怎样创建Automation对象的新实例 Jscript(微软版本的JavaScript)是一个宽松类型的语言。换句话说,变量不是明显定义为指定的数据类型。你不能声明一个变量为指定的对象类型,所以早绑定不可能在JScript中。Jscript的ActiveXObject()构造函数通常用于为对象创建一个迟绑定界面: var wdApp; // 一个普...
  使用Javascript数组 在JavaScript 1.0中构造器只存在Date对象和用户定义的对象。你可能期望有个数组构造器,但是一直没能实现,直到JavaScript 1.1的出现,你的期望成为了现实。我们可以如下来定义用户对象: function blankArray(n) { for (var i=0; i < n; i++) this[i] = null; this.length = n; } blankArray函数创建了一...
标签: Web开发
使用javascript中的OLE Automation 6. 怎样提高脚本程序的性能 自从我们处理重的对象模型(比如Word.Application)和应用程序实例,注意系统的资源示相当重要的。一旦我们完成对应用程序实例的处理,我们必须去掉它,以从内存重清除对象的实例。在Jscript中有唯一的方法来实现,它就是应用程序对象的Quit()方法,以下是一个例子: var wdApp ...
标签: Web开发
使用javascript中的OLE Automation 5. 怎样处理应用程序的实例 文档模板是应用程序和它支持的文档之间的连接。文档模板有两种类型:单一文档,它只能一次打开一个类型的文档;多文档模板,它允许多个文档同时被打开。下面的表格列出了Windows应用程序的各种类型: 单文档界面(SDI)应用程序 单文档界面(MDI)应用程序 老类型的应用程...
标签: Web开发
使用javascript中的OLE Automation 4.怎样检索一个Automation对象存在的实例 Jscript支持同样Visual Basic中的GetObject()函数。它的一般的语法如下: var objVar = GetObject([pathname][, class]); objVar指定了一个变量来保留实例化对象的引用。Pathname是完全的路径和包含ActiveX对象的文件名。Class指定在字符串的表单中对象的类。Clas...

经验教程

559

收藏

13
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部