Topic: Is it mean of me to turn away non javacript users?
So far on my first project I've managed to make sure things degrade fairly gracefully, however I'm already seeing where the problems come in in accommodating this.
As an example, I have a page with 4 forms on it. One form enters a food item into the database and includes 3 drop downs for categorisation. The other 3 forms are simple textfields to add extra items to those categories. I use the same page for new items and editing, and this is where my problem comes in with JS turned off.
You browse to food/edit/<id> and it displays everything in the form. You then decide to add a new category but when that form's completed it doesn't know whether the main form on the page was called with the edit action and an id, or the new action, so doesn't know where to send you afterwards.
All of a sudden what doesn't even need consideration when using AJAX now involves loads of extra logic to work out where you've been and where you're going.
Now I'm thinking I'd like to put everything on one page and have the new item form in a toggled div, etc, and the thought of making that degrade gracefully sounds like a nightmare.
So, I'm still new to this and am still learning the ropes when it comes to how best to do things - are my conclusions right? It seems to me that making your app degrade gracefully isn't just about implementing the same features in a non JS manner, and that unless your app is using AJAX in anything but the simplest of ways you're in for a world of pain. It almost seems easier to produce a whole separate implementation to serve non JS users.
So, for me I think I'm going going to make it clear it's a JS only site. It's quite niche and my whole reason for creating it is that it's something that's currently only served by sites with clunky interfaces. It involves entering a fair amount of data and pulling in info from many sources, so simple routine use involves a lot of page views - therefore I reckon producing a decent AJAX interface will give it a very good edge. If a user doesn't use AJAX, it's really lost it's purpose and they might as well be using one of the other existing services.
Out of interest, I thought I'd see what the Pro's do and see what happens in Basecamp when I turned off my JS - some things worked, some didn't. Interesting!
Anyway, I was interested in getting other people's opinions on the matter and thought it might make a good discussion point.