There are so many JS frameworks! It can get tiring to keep up to date with them all.
Joking aside, when it comes to choosing frameworks for a project, emerging frameworks just haven't been battle-tested enough for me to recommend to clients in most cases.
But like much of the community, I feel pretty confident in the future of React. It's well documented, makes reasoning about data easy, and it's performant.
I was working on a Backbone project with fellow Quick Left-er Bob Bonifield recently, when we came across a problem. We were building an administration panel to be used internally by a client, and there were a couple of views that needed to display the same information about users in a slightly different way. To prevent unnecessary AJAX calls, we decided to cache the result of
Backbone.Model#fetch at two levels of our application. The result: less network time and a snappier user experience. Here's how we did it.
This was originally posted on the Sprint.ly blog about how we spent the last few months helping the Sprintly team land a massive performance refactor.
Last week we helped Sprintly launch a dramatic increase in front end performance. We are built on Backbone.js and, over time, our rendering times have slowed down. Luckily, using some of the great tools in the latest versions of Chrome and a few additional tools for instrumenting how the Sprintly frontend was performing, fixing it was dramatically easier than it would have been just a few months ago.
To reliably use cross-domain AJAX in your extension, you have to go through Crossrider's request.get() and request.post() APIs. Simple jQuery AJAX requests won't cut it due to browser portability problems. This means we needed to adapt Backbone to use this proprietary API for its persistence calls, like .save() and .fetch(). Here's how we overwrote Backbone.ajax to swap in the Crossrider API:
You asked, and we answered. We're bringing sexy back to Backbone.js. Sign up today for our Intro to Backbone.js workshop July 25 at Galvanize in Denver. Early bird pricing on registration ends tomorrow! Space is limited.