i absolutely hate how the modern web just fails to load if one has javascript turned off. i, as a user, should be able to switch off javascript and have the site work exactly as it does with javascript turned on. it’s not a hard concept, people.
but you ask candidates to explain “graceful degradation” and they’ll sit and look at you with a blank stare.
I mean… many websites rely on JavaScript, so it’s kind of obvious that they don’t work without it. If it would work without JS in the first place, the website wouldn’t need to embed any JS code.
That’s the point.
which is the problem that most people don’t understand the concept of graceful degradation
other than the 20 trackers and ad scripts.
There’s a difference between “wouldn’t work” and “wouldn’t work as nicely”. That’s what this post is about :D Most websites would still work in the same basic way without js.
OP really muddled the waters by writing:
That’s obviously impossible and wouldn’t be degraded.
exactly as it does aka forms submit, logging on works, you can achieve the same thing
It’s either exactly the same, or it’s gracefully degraded. You’re asking for two opposite things at once.
For what it’s worth I support the notion that fundamental functionality should be supported without Javascript, with good old form submissions.
But I also recognise that you can’t get the exact same behaviour without javascript initiated background GETs and POSTs. Easy example: A scrollable map that streams in chunks as you move it.
form validation is dogshit without js
Why would someone spend tons of time on something that isn’t needed? Only a few people even know how to turn off JavaScript and chances are they will just turn it back on since nothing works.
Most websites out there could work fine without JavaScript. They rely on it because they can’t be bothered to be better.
What would they do instead?
How about serving a proper HTML that contains the data they want to display? Instead of an empty page that tries to load the data via JavaScript.
I miss when JS was just a silly thing you could use to add trails to the mouse cursor to impress anyone who stumbled onto your geocities page
They could just add a text box that says please enable JavaScript.
https://developer.mozilla.org/en-US/docs/Glossary/Graceful_degradation
But honestly, all i ask is that buttons still work, forms get sent, if you use a more basic browser.
It is a lot simpler to just require JavaScript. It is widely supported and is default enabled on all platforms and browsers.
Sending forms is a built-in functionality and you say it’s simpler to hack your way around it.
I mean, sure, if your framework does it this way. But it shouldn’t. Note that as a bug.
When I ask a server for a page, it should give me content, not a shitty script and a note that says “here, you do it.”
That isn’t how it works
You are viewing a product
Sorry about your stroke
Have you ever tried building a modern page without JavaScript.
You can do a lot of things with HTML5 and CSS. It just is very complicated and painful. It isn’t intuitive and the behavior will vary across browsers. What could be a little JavaScript turns into a ton of write only CSS.
Yes, that’s my job.
The point isn’t to emulate the JavaScript functionality somehow. The point is to simply fetch the desired information as a new page load when necessary. The page should work in lynx.
Uhm, the web is to share content, not to play JS. That’s what graceful degradation is for: the primary usecase should still work, even if the secondary or tertiary doesn’t.
The web doesn’t have a single unified purpose. Even if I hate it as a programming language, JavaScript if the basis almost all client-side browser operations build upon.
Sure, a simple website which just contains information works without it, but if you design a website in which the client does anything interactively and not everything should be processed server-side, it’s not really possible. No matter if you’re talking about a web game, something like Google Earth or an in-browser editor.
All examples that work worse than a native software.