spacer


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


home / experts / javascript / column55


OLE Automation in JavaScript

Developer News
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?

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, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs

webref The latest from WebReference.com Browse >
Rolling Out Your Own HTML Application Version Control · HTML 5: Client-side Storage · Working with Ajax Server Extensions
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Wi-Fi Product Watch, November 2009 · Chip Market Recovering From '08 Collapse · Low-Cost Tools to Kickstart Your New Business


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

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