4 ms·
Author here. We do this for SPA. The POST can be supported just like you explained. Then you can either reload the "page" to see that the checkbox is checked,
by hakunin 3y ago
Author here.
We do this for SPA. The POST can be supported just like you explained. Then you can either reload the "page" to see that the checkbox is checked, because backend will include that as part of the page, or (as an optimization) reload just that checkbox if you created a specialized resource for it. The entire page is still there for you to fetch upon transitions.
Among pages, you will still need a few individualized resources sprinkled around for optimizations/reloads/fragment-paginations. The difference between that and a complete API is that they will be entirely design driven. If a table needs paginating, and is built with data from multiple resources, you will not provide 2 resources, and expect front-end to paginate and glue them together. Instead, you provide a complete paginated resource for this table, where data is ready to be displayed as-is.
- littlecranky67 3y agoThat us exactly how stuff worked around 2005. And no, you should not do a full form post just to toggle a checkbox.
- yakshaving_jgt 3y agoWhy not?
- valenterry 3y agoAs a user, I can think if a couple of reason immediately: - I don't like page (re)loads. They are usually slower and more likely to fail, compared to a lightweight request. Especially in scenarios with a bad connection - If they fail, it's harder to retry, I see a connection timeout page. With a SPA I see an error message, potentially with a retry button. Or even better: the SPA retries for me a few times. - I can continue to see all the rest of the page while the action is running - I can potentially start other actions in parallel - I prefer to not lose any progress of things on the side, e.g. text-boxes where I already entered/changed some text - It's easier to inspect what goes wrong by looking at the network tab. Okay, most users don't do that, but for me it's still a pro There are also advantages, but I think nowadays the cons outweight those for me.
- yakshaving_jgt 3y agoI’m convinced this is HN-themed satire.
- 9935c101ab17a66 3y agoIt seems sincere — unlike your comment, which comes across as very off-hand / dismissive.
- yakshaving_jgt 3y agoYeah, sorry, but I just don't agree with the spirit of the comment, and I think it's thinking like this which leads programmers to over-engineer web applications, which usually harms user experience and wastes company money. Absolutist statements like "no, you should not do a full form post just to toggle a checkbox" are just silly. There is no minimum bound beneath which a standard web browser form submission doesn't make sense, and writing extra JavaScript code to not only manage an asynchronous network request but also handle subsequent behaviours for success, failure, timeout, etc., is additional complexity which incurs additional cost and a greater potential for system failure. Sometimes these implementation details and associated costs are necessary, but in most cases they aren't, and it's not an ideal perspective economically to default to the more expensive and complex implementation, especially for dubious benefit.
- littlecranky67 3y ago> Absolutist statements like "no, you should not do a full form post just to toggle a checkbox" are just silly That is because you didn't read or accept the frame that I set initially. I was very clearly refering to web apps that are SPAs (not websites!). Within that context, that statement is less absolutist and still true in 95% of the cases.
- valenterry 3y agoI mean, you asked a question and I gave some reason that I could think of. How exactly do you "disagree with the spirit of my comment"? If you don't want to hear an answer, maybe you should just not ask.