Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

removing unused DOM elements for performance

Tags:

javascript

I'm writing a single page application. When the page is initially served, it contains many DOM elements that contain json strings that I'm injecting into the page.

When the page loads on the client, the first thing that happens is that these DOM elements are parsed from json to javascript objects and then they're never used again.

Would there be a performance benefit into deleting them from the DOM and reducing its size? I haven't found any conclusive data about this aspect. For info, these elements are about 500K in size.

Thanks for your suggestions.

like image 883
frenchie Avatar asked Jul 10 '12 22:07

frenchie


People also ask

Does display none improve performance?

Display none don't improve the performance because the goal of virtual scrolling is reduce the number of the elements into the dom. Make an element display none or remove an element, trigger a reflow, but with display none you worst the performance because you don't have the benefit of reduce the dom.

What is a good DOM size?

As covered by Google, an excessive DOM (Document Object Model AKA web page) can harm your web page performance. It is recommended that your web page have no more than 900 elements, be no more than 32 nested levels deep, or have any parent node that has more than 60 child nodes.


1 Answers

Would there be a performance benefit into deleting them from the DOM and reducing its size?

In terms of the performance of the DOM, generally, the less you interact with your DOM, the better.

Remember that your selectors traverse the dom, so if you use inefficient selectors, it will be poor performance no matter what, but if you're selecting elements by ID rather than class or attribute wherever possible, you can squeeze good performance out of the page, regardless of whether you've deleted those extraneous markup items.

When the page is initially served, it contains many DOM elements that contain json strings that I'm injecting into the page.... For info, these elemnts are about 500K in size.

In terms of page load, your performance is suffering already from having to transfer all of that data. if you can find a way to transfer the json only, it could only help. Deleting after the fact wouldn't be solving this particular problem, though.

like image 106
Kristian Avatar answered Sep 30 '22 19:09

Kristian