spacer


Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com


home / experts / javascript / column55


OLE Automation in JavaScript

Developer News
News Flash: Adobe Has iPhone Workaround
Adobe's Flash 10.1 Goes Mobile (Minus iPhone)
A Salute to Visionary CEOs

Performance Tips

Tidy Up

Since we're dealing with heavy object models (e.g., Word.Application) and application instances, it is extremely important to keep an eye on system resources. Once we've finished handling an instance of an application, we must get rid of it in order to free the memory taken up by the instance of the object. The only way doing this in JScript is the Quit() method of the program's Application object. Here's an example:


var wdApp = new ActiveXObject("Word.Application");
wdApp.Quit(); // tidy up


In Visual Basic, unlike JScript (and VBScript), setting the object variable to Nothing is enough to free the memory. Furthermore, if there are no other "live" references to the object, such an assignment operation causes the application to shut down. Unfortunately, in JScript we must use the Quit() method to tidy up after we have finished using an object. Setting the variable to a zero-length string or null is just good practice, nothing more.


Avoid "Dots"

Every dot that you place in your script represents at least one procedure call that has to be executes in the background. The best solution is to locally cache object references. This tip applies to objects in general, and specifically to Automation objects. Take a look at the following script segment:


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";


The following code shows how to do this in a much more efficient way:


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";


 




http://www.internet.com


Produced by Yehuda Shiran and Tomer Shiran

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs

webref The latest from WebReference.com Browse >
Building a Banking Application Home Page with OOP · Mixing Scripting Languages · Review: phpFox, a Social Networking CMS with all the Bells and Whistles
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Enterprise 2.0: Social Networking in the Cloud · BroadSoft Marketplace Hastens Pace of Telephony Innovation · Review: HTC Hero for Sprint


Created: January 10, 2000
Revised: January 10, 2000

URL: http://www.webreference.com/js/column55/performance.html