That's not a big surprise. jQuery's events use native browser events behind the scenes. Which is nice for dom-oriented plugins; you get bubbling for free and all the native event listeners just work. It's got a pretty fair amount of overhead though. Backbone's events are just a pure JS event emitter implementation.
I'm curious, though, why they added an external dependency instead of just inlining a solution. There's a couple of good MIT licenced barebones implementations[1][2] floating around, and it's pretty straightforward to reimplement yourself in an hour or two if you prefer.
Comments
That's not a big surprise. jQuery's events use native browser events behind the scenes. Which is nice for dom-oriented plugins; you get bubbling for free and all the native event listeners just work. It's got a pretty fair amount of overhead though. Backbone's events are just a pure JS event emitter implementation.
I'm curious, though, why they added an external dependency instead of just inlining a solution. There's a couple of good MIT licenced barebones implementations[1][2] floating around, and it's pretty straightforward to reimplement yourself in an hour or two if you prefer.
[1] https://github.com/Wolfy87/EventEmitter [2] https://github.com/hij1nx/EventEmitter2
I was not aware of these other event systems in JavaScript. Thanks for pointing these out!
You also have Backbone events extracted from Backbone on https://github.com/bermi/eventify
Just to add to the list: https://github.com/necolas/emitter.js
:)
Or http://github.com/ajacksified/Mediator.js :D
or https://github.com/component/emitter if you wanted to get real modular and release the library as smaller Components.