I agree with most of what you say except for the idea that frames should be relegated to the garbage heap of history. Sure they were horribly misused and before browsers learned to make "back" work correctly in frames they were a nightmare. Frames still do two things that can not be accomplished as well with other browser features and which happen to be critical for the kind of modification of fullpage chat I am working on: tiling and transclusion.
I am a big fan of a combined tabbed-tiling approach, I use pekwm window manager and my desktop is a mixture of tabs, tiling, and restricted but occasional floating windows. Tiling provides the ability to have a large number of things available in a window while maintainng the ability to flexibly adjust the space alloted for each thing. CSS can do some things similar to tiling but until CSS matures, frames do tiling better.
As for transclusion: AJAX, the hero of ancient Greece and modern buzzwordists, can do translusion of *local* content but for security reasons can not transclude *remote* content which is critical for apps like fullpage chat and Zedulator. I tried making Zedulator using CSS and iFrames rather than frames and it was moderately successful, but nowhere near as easily maintaniable or usable as the frames version.
Take Zedulator for a spin and I think you'll see what it accomplishes with frames: Hide and display the private messages and other users as needed; split the main screen between chat and browsing or, when needed make the screen all chat or all browsing; drag a link from the chat to the search and see it appear in the browse area ...
| [reply] |
I didn't mean to imply that browsers shouldn't have frames. Implemented correctly, I would view browser frames as either an alternative to or a complement to browser tabs and/or multiple browser windows. I'm not against frames in general, and indeed use them extensively in Emacs (though there they are called "windows", and windows are called "frames"). I have also used a window manager that allowed the screen to be divided up in this fashion, and although it's not my cup of tea, it does have some advantages. I might have liked it better if dialog boxes were handled differently somehow, and if I'd had Gimp 2 with the dialogs all docked under the toolbox, rather than the Gimp 1.x that I had at the time. But I still would probably have ended up back with a more traditional window manager, because I like to let the bottom edges of certain windows (e.g., log tailers or download progress bars) show behind/under what I'm currently doing, so that I can notice if there are significant changes at the bottom. Still, as I said, the principle of split windows is sound, and I use it very extensively in Emacs.
However, I don't think it is the webmaster's business which window, tab, frame, or other UI element I choose to use to view any given web page. Fundamentally that should ALWAYS be up to the user, not the content creator. There's no legitimate reason for document markup to specify that, ever. I could *maybe* live with allowing stylesheets to _suggest_ a particular arrangement, but only if the user can set his browser to ignore such suggestions, which I would promptly do.
This is, incidentally, a more hardline position than I used to take on frames. I once believed that frames were merely overused, and that there might be some things for which frames might actually be needed. But after a decade or so I've yet to see a website that actually needs to specify frame layouts to work correctly. Every time someone tries to point one out to me, I can't help but see ways in which the user might like to arrange things differently, and ways in which fundamentally the same thing (or the important part, at any rate) could be accomplished without frames.
The way that the fullpage chat uses frames has always annoyed me. Not only is it unnecessary, but the lack of reload (of the comments) on submit causes a very annoying lag between typing something and seeing it appear. And between times, when you're just sitting there reading, it reloads the existing information every few seconds, interrupting the reading process, which in these days of DOM manipulation and asynchronous retrieval is needless, because the new stuff could just be appended to what is already there. In fact, I'd say it's a perfect example of unwarranted frame (ab)use.
Websites should not be specifying frame layouts. It was a bad idea when Netscape first came up with it, and it hasn't improved with age. The sooner web browsers stop supporting it, the better. I realize this is in some ways a narrow-minded opinion, but that doesn't keep it from being right.
Sanity? Oh, yeah, I've got all kinds of sanity. In fact, I've developed whole new kinds of sanity. Why, I've got so much sanity it's driving me crazy.
| [reply] |