5 ms·
> full page reloads grug remember ancestor used frames then UX shaman said frame bad all sour faced frame ugly they said, multiple scrollbar bad then 20 year
by alganet 1y ago
> full page reloads
grug remember ancestor used frames
then UX shaman said frame bad all sour faced frame ugly they said, multiple scrollbar bad
then 20 years later people use fancy js to emulate frames grug remember ancestor was right
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/frameset https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...
- kbolino 1y agoClassic frames were quite bad. Every frame on a page was a separate, independent, coequal instance of the browser engine. This is almost never what you actually want. The header/footer/sidebar frames are subordinate and should not navigate freely. Bookmarks should return me to the frameset state as I left it, not the default for that URL. History should contain the frameset state I saw, not separate entries for each individual frame. Even with these problems, classic frames might have been salvageable, but nobody bothered to fix them.
- bmacho 1y ago> Every frame on a page was a separate, independent, coequal instance of the browser engine. This is almost never what you actually want. Most frames are used for menu, navigation, frame for data, frame for additional information of data. And they are great for that. I don't think that frames are different instances of the browser engine(?) but that doesn't matter the slightest(?). They are fast and lightweight. > The header/footer/sidebar frames are subordinate and should not navigate freely. They have the ability to navigate freely but obviously they don't do that, they navigate different frames.
- kbolino 1y agoWith a frameset page: History doesn't work right Bookmarks don't work right -- this applies to link sharing and incoming links too Back button doesn't work right The concept is good. The implementation is bad.
- bmacho 1y agoYup, they are not enough for an SPA, not without javascript. And if you have javascript to handle history, URL, bookmarks and all that, you can just use divs without frames.
- kbolino 1y agoThis has nothing to do with SPAs. Take the POSIX specs linked in a sibling comment. Or take the classic Javadocs. I am currently looking at the docs for java.util.ArrayList. Here's a link to it from my browser's URL bar: https://docs.oracle.com/javase/8/docs/api/ https://docs.oracle.com/javase/8/docs/api/ But you didn't go to the docs for java.util.ArrayList, you went to the starting page. Ok, fine, I'll link you directly to the ArrayList docs, for which I had to "view frame source" and grab the URL: https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html https://docs.oracle.com/javase/8/docs/api/java/util/ArrayLis... Ok, but now you don't see any of the other frames, do you? And I had one of those frames pointing at the java.util class. So none of these links show you what I saw. And if I look in my history, there is no entry that corresponds to what I actually saw. There are separate entries for each frame, but none of them load the frameset page with the correct state. These are strongly hyperlinked reference documents. Classic use of HTML. No JavaScript or even CSS needed.
- deleted 1y ago[deleted]
- bmacho 1y agoThis is exactly what I wrote? But let me rephrase it: frames are not enough solely for an SPA, they can't keep state, you need javascript/dynamic webserver for that. > Ok, fine, I'll link you directly to the ArrayList docs, for which I had to "view frame source" and grab the URL: You could've just right click on the "frames" link, and copy the URL: https://docs.oracle.com/javase/8/docs/api/index.html?java/util/ArrayList.html https://docs.oracle.com/javase/8/docs/api/index.html?java/ut... . They use javascript to navigate based on the search params in the URL. It's not great, it should update the URL as you navigate, maybe you can send them a PR for that. (And to change state of the boxes on the left too.) Also browser history handling is really messy and hard to get right, regardless of frames. > And if I look in my history, there is no entry that corresponds to what I actually saw. ? If you write a javascript +1 button that updates a counter, there won't be a corresponding entry in your history for the actual states of your counter. I don't see how that is a fundamental problem with javascript(?).
- alganet 1y agoYou can see frames in action on the POSIX spec: https://pubs.opengroup.org/onlinepubs/9799919799/ https://pubs.opengroup.org/onlinepubs/9799919799/ They can navigate targeting any other frame. For example, clicking "System Interfaces" updates the bottom-left navigation menu, while keeping the state of the main document frame. It's quite simple, just uses the `target` attribute (target=blank remains popular as a vestigial limb of this whole approach). This also worked with multiple windows (yes, there were multi-window websites that could present interactions that handled multiple windows). The popular iframe is sort of salvaged from frame tech, it is still used extensively and not deprecatred.
- kbolino 1y agoAn iframe is inherently subordinate. This solves one of the major issues with classic frames. Classic frames are simple. Too simple. Your link goes to the default state of that frameset. Can you link me any non-default state? Can I share a link to my current state with you?
- p0w3n3d 1y agoIframes are no longer the thing? I must have slept over this scene
- kbolino 1y agoBy "classic frames", I mean <frameset> not <iframe>. Though iframes have some of the same problems, they don't have all of the same problems. They also tend to be used differently, though you can certainly create a frameset-like experience using only iframes.