3 ms·
After building some single page JS web apps small and large, I am not sure that building large JS web apps is actually a good idea. In fact, a lot of the time
by programminggeek 13y ago
After building some single page JS web apps small and large, I am not sure that building large JS web apps is actually a good idea.
In fact, a lot of the time they probably aren't a good idea. It is often better to just build out separate pages and on a page that requires more interactivity, use knockout or something similar.
- mjallday 13y agoWhat are the issues that you've run into? We've used Ember.js to build a reasonably complex app (github.com/balanced/balanced-dashboard) and while there have been some tricky bits it's generally been what we expected it to be. Ember.js does a great job of helping you when you start to get a lot of moving parts. I felt the same way you did before I dived in but now I'm comfortable in saying that its possible to build large apps in JavaScript.
- ulisesrmzroche 13y agoI think the exact opposite actually. JS Web Apps are great. What problems did you run into that made you think otherwise?
- steveklabnik 13y agoI personally run into a host of issues, mostly relating to browser behavior that no longer works. For example, 'text areas' that no longer trigger the browser's built-in spell checking. Or scrolling that works differently. Or keyboard shortcuts that are overridden. Or, a simple 'submit' button that no longer works because of a browser JS bug, whereas if it were just HTML it'd work. I do like a lot of browser based apps too, but many of them have tons of annoying issues. (Note: I mean JS SPAs in general, not Ember ones. Most Ember apps I know are pretty well behaved.)
- marknutter 13y agoIt really depends on the type of app you're building. If you're Twitter, a single-page app probably doesn't make a whole lot of sense, which I'm sure is why they backpedaled from that strategy. If you're Asana, then a single-page app makes a lot of sense. It has to do with just how many dynamic things you want happening on the page.