ぜんぶなんとかなる

ふしみの雑文

evalで同期実行するよりscriptタグをappendChildして非同期実行するほうが速いか?

var testcode = "\
function dotest(){\
    var start = +new Date();\
    for(var i = 0; i < 1000000000; i++){\
    }\
    var end = +new Date();\
    console.log(end - start);\
};dotest();";

eval(testcode);

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.innerHTML = testcode;
head.appendChild(script);

コードを単にevalするのと、DOMツリーにscriptエレメントをappendChildして実行するのとどちらが早いか。結果は

  • eval: 4085
  • appendChild: 11464