4 ms·
There are ways of doing SPAs without polluting the history. In fact, I find them less frustrating to use. If your design relies on cues taken from malware pages
by kurtisc 8y ago
There are ways of doing SPAs without polluting the history. In fact, I find them less frustrating to use. If your design relies on cues taken from malware pages, that's on you.
- SquareWheel 8y agoWhy do you think the history push API was introduced? For websites that work like SPAs.
- kurtisc 8y agoThat's not the full answer. It was introduced to accommodate people who wanted their pages to work like SPAs. It's the intentions of the people who are frustrating me.
- evrydayhustling 8y agoThis is a frankly ignorant statement about SPA design. Pushing history on major navigation events has nothing to do with malware patterns. It is way of making SPAs compatible with user expectations and protocol investments based on the non-SPA web. It allows them to use their own tools for bookmarking, link sharing, and history management rather than forcing a from-scratch experience when they come to the sites. Accessible navigation patterns are a key part of making the web accesible to decentralized improvement. If every SPA was a black box with its own navigation regime, the web would regress to walled garden apps that characterize 90s desktop and early iOS ecosystems.
- kurtisc 8y agoI fail to see how I can be ignorant of what I find less frustrating and more compatible with my user expectations. >It allows them to use their own tools for bookmarking, link sharing, and history management rather than forcing a from-scratch experience when they come to the sites. Such as the behaviour of buttons outside the sandbox the browser provides? To quote you: >browsers haven't been stateless url-loaders since the late 90s Why break the expectations of the back button to hack the other tools to work how you'd expect when, really, all of the features you're describing worked perfectly fine before SPAs. The very reason pages like this frustrate me are because they don't work with the history management I expect.
- evrydayhustling 8y agoThe ignorant part was accusing SPA authors of copying malware patterns. Regarding your opinion, I'm still not sure what you are comparing / suggesting. Are you saying that late 90s reactivity on the web was good enough? I think you are very much in the minority on that one. Are you saying SPA authors shouldn't expose URLs for different navigation paths to the browser? I think you would be surprised at all the places your browser experience breaks, like not being able to restore tabs, or copy links to interesting news stories. The right way to do SPA is to design nav actions that feel like links, and only update the history in those. A user not watching carefully for page refreshes or net traffic shouldn't be able to tell the difference - and perhaps there are times this is happening on your browser that you aren't aware of because it can be done smoothly.
- kurtisc 8y agoHijacking history is a pattern used by malware and trying to stop it has broken some honest websites. This happened with Flash, with Java applets, with popups. It shouldn't be a surprise. As I see it, you're considering the malware an acceptable sacrifice for having SPAs work slightly better (for what you value as better and I don't). Websites as apps will continue to work, they'll either lose this functionality or use normal links - the kind that are good enough for Facebook et al. Or for Hacker News. >Are you saying SPA authors shouldn't expose URLs for different navigation paths to the browser? I think you would be surprised at all the places your browser experience breaks, like not being able to restore tabs, or copy links to interesting news stories. No. All of these work with links. Aren't you trying to fit a SPA shaped piece in a website shaped hole?
- evrydayhustling 8y agoLinks force a reload of additional assets, break ongoing socket connections, and at minimum requires a re-rendering of the entire DOM, which is a waste for many navigation actions that still deserve their own URL. In particular, the many tcp handshakes necessary for a total page refreshes are expensive on mobile. As a concrete exampke, rich news experiences that let you scroll through preloaded stories benefit a lot from not needing to re-render all of the surrounding layout when the content changes, and from assigning a different url to each story. Btw, I never said this was worth the current trade-off with malicious sites, just that the history features were originally inspired and still used by honest sites. Fortunately we have better options than all or nothing; sounds like Chrome is implementing a heuristic that makes sure url history can only be updated in some proportion to human actions. Another option might be a whitelist check like "<site> would like to update your history".