learning-unlimited/ESP-Website — pull request #1379 by benjaminjkraft (2014-10-12 23:30:08+00:00)
Title: Ajaxify scheduling checks

This is a thing we keep wanting, so I went and did it. We do lose some efficiency from reusing data that gets computed for multiple checks, but I think that's worth it.

I decided to do this in [React.js](https://facebook.github.io/react/). I've mentioned React to several other people on web-team after using it this summer, and I think we should start using it, especially for new JS development. It makes making interfaces like this really easy -- you don't have to manage the DOM yourself, you just have to say what it should look like when. Unfortunately this does mean adding a new library, but it should play well with other things when we need it to, and I really hope we can phase out a lot of the other ones, because I think React is way better.

Because we don't do any JS preprocessing or packaging or anything, I used React's in-browser JSX transformer. It's a little slower, but not much. Ideally sometime we will actually package our JS reasonably and then we can use the server-side transformer.