jQuery size() vs length

I have seen a lot of jQuery developers getting confused over the usage of the jQuery size() function and length property. Both of these return the count of elements on the page or jQuery object.

jQuery documentation however says that the length property should be preferred over the size() function as using the length property will avoid an extra method call. So it is quicker.

There’s a performance test created over here by Charles which counts the number of unordered list (<li>) on the page to demonstrate the same.

$(‘li’).length; // quicker

Running the sample above shows a slight performance advantage of using length over size()jquery size vs length

Note: Some times the size() returns a faster result (on IE 8). In my opinion, keeping both the size() and length property in the API is confusing. I have been using size() as it is an abstraction over the length property. Although, the length makes more sense since it is the recommended approach and is familiar especially to those who are JavaScript developers.

About The Author

Suprotim Agarwal
Suprotim Agarwal, Developer Technologies MVP (Microsoft Most Valuable Professional) is the founder and contributor for DevCurry, DotNetCurry and SQLServerCurry. He is the Chief Editor of a Developer Magazine called DNC Magazine. He has also authored two Books - 51 Recipes using jQuery with ASP.NET Controls. and The Absolutely Awesome jQuery CookBook.

Follow him on twitter @suprotimagarwal.

1 comment:

lustos said...

Good one. Did you also know that if you use jquery instead of the ajax toolkit for collapsible panels is faster too?