jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
<div id="test">
<p>
foo
</p>
<p>
bar
</p>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
(function($) {
$.fn.getHTML= function(){
var txt, ax, el= document.createElement("div"),
who = $(this)[0];
el.appendChild(who.cloneNode(false));
txt= el.innerHTML;
ax= txt.indexOf('>')+1;
txt= txt.substring(0, ax)+who.innerHTML+ txt.substring(ax);
el= null;
return txt;
}
})(jQuery);
(function($){
$.fn.outerHTML = function() {
var a = this.get(0).outerHTML;
return a ? a : $('<p/>').append(this.clone()).html();
}
})(jQuery);
// gtournie's jQuery plugin
(function($) {
var DIV = document.createElement("div"),
outerHTML;
if ('outerHTML' in DIV) {
outerHTML = function(node) {
return node.outerHTML;
};
} else {
outerHTML = function(node) {
var div = DIV.cloneNode();
div.appendChild(node.cloneNode(true));
return div.innerHTML;
};
}
$.fn.outerHTML2 = function() {
return this.length ? outerHTML(this[0]) : void(0);
};
})(jQuery);
Ready to run.
Test | Ops/sec | |
---|---|---|
native outerHTML |
| ready |
jQuery Clone-then-Wrap |
| ready |
jQuery create-and-append |
| ready |
Vanilla JS plugin |
| ready |
Lightweight Feature-Detection Plugin (FF > 11 ONLY!) |
| ready |
gtournie's jQuery plugin |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.