Thursday, January 10, 2008 12:52 PM
TanzimSaqib
ASP.NET AJAX Best Practices: Avoid using Array.length in a loop
In one of my earlier posts, I talked about DOM element accessing in a loop but forgot to talk about a very common, yet performance issue in AJAX. We often use code like the following:
var items = []; // Suppose a very long array
for(var i=0; i<items.length; ++i)
; // Some actionsIt can be a severe performance issue if the array is so large. JavaScript is an interpreted language, so when interpreter executes code line by line, every time it checks the condition inside the loop, you end up accessing the length property every time. Where it is applicable, if the contents of the array does not need to be changed during the loop's execution, there is no necessity to access the length property every time. Take out the length in a variable and use in every iteration:
var items = []; // Suppose a very long array
var count = items.length;
for(var i=0; i<count; ++i)
; // Some actions
Filed Under:
JavaScript,
Performance
Anonymous comments are disabled
About TanzimSaqib
Tanzim Saqib is a
Senior Developer, who spent half of his life on software and worked for many companies like #1 .NET controls provider
Telerik Inc, #1 personalized Web 2.0 start-page like
Pageflakes (acquired by LiveUniverse). He developed many projects ranging from banking solutions for Citibank, HSBC, Wamu, Wells Fargo etc. to
Paperless Virtual University. He is industry's earliest and leading widget developer and as know as
"Widget Master" to his peers.
He is a preacher of Microsoft technologies. While he jams with the latest additions to .NET, in his spare time he blogs at
http://weblogs.asp.net/TanzimSaqib, maintains his personal website
http://www.TanzimSaqib.com, leads
.NET Research group. writes articles.
He is an
easy going, fun loving, and
passionate technology individual who is open to any kind of
business opportunity and professional relationship. He currently lives in Bangladesh, but travels anywhere in the world on professional demand.
Email: me at TanzimSaqib dot com