cssText vs style (v18)

Revision 18 of this benchmark created on


Description

Comparing the performance of using style against changing directly cssText. Also compared against with just adding a css classname.

Added forced reflow for testing how much elements you can effectively redraw with each methods

get an element width force the render so i test with that...

Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<div id="element">
</div>
<style type=”text/css”>
  .newClass { left: 10px; top:50px; }
</style>

Setup

var $element = $('#element');

Test runner

Ready to run.

Testing in
TestOps/sec
element.style
var element = document.getElementById('element');
var left = 10;
var top = 50;
element.style.left = left + 'px';
element.style.top = top + 'px';

var width = $element.width();
ready
element.cssText
var element = document.getElementById('element');
var left = 10;
var top = 50;
element.style.cssText = '; left: ' + left + 'px; top: ' + top + 'px;';

var width = $element.width();
ready
change css class
var element = document.getElementById('element');
element.className = 'newClass';

var width = $element.width();
ready
jQuery style
$('#element').css({
  'left': 10,
  'top': 50
});

var width = $element.width();
ready
classList
var element = document.getElementById('element');
element.classList.add('newClass');

var width = $element.width();
ready
Set attribute
var element = document.getElementById('element');
var left = 10;
var top = 50;
element.setAttribute('style', 'left: ' + left + 'px; top: ' + top + 'px;');

var width = $element.width();
ready
Only getWidth
var width = $element.width();
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.