Javascript实例教程(20) OLE Automation(6)

javascript|教程

使用JavaScript中的OLE Automation

6. 怎样提高脚本程序的性能

自从我们处理重的对象模型(比如Word.Application)和应用程序实例,注意系统的资源示相当重要的。一旦我们完成对应用程序实例的处理,我们必须去掉它,以从内存重清除对象的实例。在Jscript中有唯一的方法来实现,它就是应用程序对象的Quit()方法,以下是一个例子:

var wdApp = new ActiveXObject("Word.Application");

wdApp.Quit(); // tidy up

在Visual Basic中,不象Jscript和VBScript,设置对象变量为空是不能清除内存的。而且,如果没有其它对这个对象进行引用的话,这样的赋值操作将导致应用程序的关闭。不幸的是,在JSCript中我们必须使用Quit()方法在我们已经使用对象的时候来将它从内存中清除。而设置变量为零长度的字符串或者为空只是一个好的练习,它并不能起到清除内存的作用。

在教程中放置点至少代码了一个过程调用不得不在背景中被执行。最好得解决方法就是局部化高速缓冲对象引用。总得说来,这个技巧可以应用到对象以及Automation对象。下面看看脚本片段:

var exApp = new ActiveXObject("Excel.Application");

exApp.Workbooks(1).Worksheets(1).Cells(1, 1).Value = "First Cell";

exApp.Workbooks(1).Worksheets(1).Cells(1, 2).Value = "Second Cell";

exApp.Workbooks(1).Worksheets(1).Cells(1, 3).Value = "Third Cell";

exApp.Workbooks(1).Worksheets(1).Cells(1, 4).Value = "Fourth Cell";

exApp.Workbooks(1).Worksheets(1).Cells(1, 5).Value = "Fifth Cell";

下面的代码说明了以更有效的方法来实现:

var exApp = new ActiveXObject("Excel.Application");

var exWbook = exApp.Workbooks(1).Worksheets(1);

exWbook.Cells(1, 1).Value = "First Cell";

exWbook.Cells(1, 2).Value = "Second Cell";

exWbook.Cells(1, 3).Value = "Third Cell";

exWbook.Cells(1, 4).Value = "Fourth Cell";

exWbook.Cells(1, 5).Value = "Fifth Cell";

时间: 2024-08-03 12:41:10

Javascript实例教程(20) OLE Automation(6)的相关文章

Javascript实例教程(20) OLE Automation(1)

javascript|教程 使用JavaScript中的OLE Automation 在前面的教程中我们已经有提到JavaScript中的OLE Automation.在本节的教程中,我们将一起来讨论一下JavaScript是怎样利用Automation的强大功能来扩展服务端脚本的能力的. 实际上Automation并不是新的事物.它已经在好几年前就流行了,但是被ActiveX脚本语言的支持是一个新的应用.如果你已经有了Visual Basic 或者Visual C++的编程背景,本节教程将介绍

Javascript实例教程(20) OLE Automation(5)

javascript|教程 使用JavaScript中的OLE Automation 5. 怎样处理应用程序的实例 文档模板是应用程序和它支持的文档之间的连接.文档模板有两种类型:单一文档,它只能一次打开一个类型的文档:多文档模板,它允许多个文档同时被打开.下面的表格列出了Windows应用程序的各种类型: 单文档界面(SDI)应用程序 单文档界面(MDI)应用程序 老类型的应用程序 新类型的应用程序 一个实例 多个实例 老类型的SDI应用程序只能一次管理一个文档,但它支持在不需要开始应用程序的

Javascript实例教程(20) OLE Automation(4)

javascript|教程 使用JavaScript中的OLE Automation 4.怎样检索一个Automation对象存在的实例 Jscript支持同样Visual Basic中的GetObject()函数.它的一般的语法如下: var objVar = GetObject([pathname][, class]); objVar指定了一个变量来保留实例化对象的引用.Pathname是完全的路径和包含ActiveX对象的文件名.Class指定在字符串的表单中对象的类.Class参数使用了

Javascript实例教程(20) OLE Automation(3)

javascript|教程 使用JavaScript中的OLE Automation 3. 怎样创建Automation对象的新实例 Jscript(微软版本的JavaScript)是一个宽松类型的语言.换句话说,变量不是明显定义为指定的数据类型.你不能声明一个变量为指定的对象类型,所以早绑定不可能在JScript中.Jscript的ActiveXObject()构造函数通常用于为对象创建一个迟绑定界面: var wdApp; // 一个普通变量 wdApp = new ActiveXObjec

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

javascript|教程 使用JavaScript中的OLE Automation 2. 什么是绑定 在你适用一个对象模型的属性.方法和事件之前,你必需首先创建一个计划性的引用给包含了你想适用的属性.方法或者事件的类.你可以通过声明一个局部对象变量以保留一个引用给这个对象来实现这个目的.然后,你要为局部变量指定一个对象的应用. VB和VBScript使用CreateObject()函数,来实现在Jscript使用这个ActiveXObject()构造函数的时候为一个Automation对象允许

Javascript实例教程(20) OLE Automation(7)

javascript|教程 使用JavaScript中的OLE Automation 7. 怎样处理集对象 Automation对象与其它的Jscript对象有些有相同的结构.它暴露了多种方法和属性,我们可以对它们进行处理.如果你从来没有接触Visual Basic,你可能就不熟悉集对象了.集就是相关项的组.集用在Visual Basic主要是为了保持跟踪许多事情,比如从你的程序(表单集)中装载表单,或者表单(控件集)中的所有控件. Visual Basci提供了集类,这样你就可以创建你自己的集

Javascript实例教程(21) OLE Automation(6)

javascript|教程 使用javascript中的OLE Automation 6. 怎样提高脚本程序的性能 自从我们处理重的对象模型(比如Word.Application)和应用程序实例,注意系统的资源示相当重要的.一旦我们完成对应用程序实例的处理,我们必须去掉它,以从内存重清除对象的实例.在Jscript中有唯一的方法来实现,它就是应用程序对象的Quit()方法,以下是一个例子: var wdApp = new ActiveXObject("Word.Application"

Javascript实例教程(21) OLE Automation(5)

javascript|教程 使用javascript中的OLE Automation 5. 怎样处理应用程序的实例 文档模板是应用程序和它支持的文档之间的连接.文档模板有两种类型:单一文档,它只能一次打开一个类型的文档:多文档模板,它允许多个文档同时被打开.下面的表格列出了Windows应用程序的各种类型: 单文档界面(SDI)应用程序 单文档界面(MDI)应用程序 老类型的应用程序 新类型的应用程序 一个实例 多个实例 老类型的SDI应用程序只能一次管理一个文档,但它支持在不需要开始应用程序的

Javascript实例教程(21) OLE Automation(4)

javascript|教程 使用javascript中的OLE Automation 4.怎样检索一个Automation对象存在的实例 Jscript支持同样Visual Basic中的GetObject()函数.它的一般的语法如下: var objVar = GetObject([pathname][, class]); objVar指定了一个变量来保留实例化对象的引用.Pathname是完全的路径和包含ActiveX对象的文件名.Class指定在字符串的表单中对象的类.Class参数使用了