HTML Preparation code:
AخA
 
1
<div id="test"></div>
Script Preparation code:
 
el = document.getElementById("test");
Tests:
  • style.setProperty

    x
     
    let i = 0;
    while (i < 10000) {
      el.style.setProperty("color","red");
      el.style.setProperty("border","1vmin solid red");
      el.style.setProperty("padding","0.5vmin");
      el.style.setProperty("background-color","black");
      el.style.setProperty("height","1vh");
      el.style.setProperty("width", i/100 + "%");
      i++;
    }
  • style.cssText

     
    let i = 0;
    while (i < 10000) {
      el.style.cssText = `color:red;border:1vmin solid red;padding:0.5vmin;background-color:black;height:1vh;width:${i/100}%;`;
      i++;
    }
  • style replace

     
    let i = 0;
    while (i < 10000) {
      el.style = `color:red;border:1vmin solid red;padding:0.5vmin;background-color:black;height:1vh;width:${i/100}%;`;
      i++;
    }
  • Object.assign

     
    let i = 0;
    while (i < 10000) {
      Object.assign(el.style, {
      height: '1vh',
      width: i/100 + '%',
      color: 'red',
      border: '1vmin solid red',
      backgroundColor: 'black',
      padding: '0.5vmin'
    });
      i++;
    }
  • setAttribute

     
    let i = 0;
    while (i < 10000) {
      el.setAttribute('style',`color:red;border:1vmin solid red;padding:0.5vmin;background-color:black;height:1vh;width:${i/100}%;`);
      i++;
    }
  • style update

     
    let i = 0;
    while (i < 10000) {
      el.style.color = "red";
      el.style.border = "1vmin solid red";
      el.style.padding = "0.5vmin";
      el.style.backgroundColor = "black";
      el.style.height = "1vh";
      el.style.width = i/100 + "%";
      i++;
    }
  • style.cssText update

     
    let i = 0;
    while (i < 10000) {
      el.style.cssText += ';' + `color:red;border:1vmin solid red;padding:0.5vmin;background-color:black;height:1vh;width:${i/100}%;`;
      i++;
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    style.setProperty
    style.cssText
    style replace
    Object.assign
    setAttribute
    style update
    style.cssText update

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36
Chrome 116 on Windows
View result in a separate tab
Test name Executions per second
style.setProperty 27.9 Ops/sec
style.cssText 36.8 Ops/sec
style replace 32.8 Ops/sec
Object.assign 31.2 Ops/sec
setAttribute 33.0 Ops/sec
style update 25.9 Ops/sec
style.cssText update 12.7 Ops/sec