Knockout.js vs Direct DOM Manipulation
JavaScript performance comparison
Preparation code
<div id="test">
<ul id="knockout" data-bind="foreach: jokes">
<li data-bind="text: joke"/>
</ul>
<ul id="dom">
</ul>
</div>
<script src="http://cloud.github.com/downloads/SteveSanderson/knockout/knockout-2.0.0.js"></script>
<script>
Benchmark.prototype.setup = function() {
// Reset DOM
var el = document.getElementById('test');
el.outerHTML = '<div id="test"><ul id="knockout" data-bind="foreach: jokes"><li data-bind="text: joke"/></ul><ul id="dom"></ul></div>';
var jokes = [{joke:"How many programmers does it take to change a light bulb? None – It’s a hardware problem"},
{joke:"Programming is like sex: One mistake and you have to support it for the rest of your life."},
{joke:"There are three kinds of lies: Dark Lies, white lies, and benchmarks."}];
function ViewModel() {
this.jokes = jokes;
}
};
</script>
Preparation code output
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
| Test | Ops/sec | |
|---|---|---|
Knockout.js |
|
pending… |
Direct DOM Manipulation |
|
pending… |
Compare results of other browsers
Revisions
You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:
- Revision 1: published by Hallvar Helleseth
- Revision 2: published by Hallvar Helleseth
- Revision 3: published
- Revision 6: published
- Revision 7: published
- Revision 8: published
- Revision 9: published
- Revision 11: published
- Revision 13: published by John
- Revision 15: published by John
- Revision 16: published by tenbits
- Revision 17: published by tenbits
0 comments