views:

457

answers:

5

I haven't used frames since 1998. They seem like a bad idea and in all my development I've never had a situation where frames were the right solution, or even a decent solution.

However, I'm now working with an internal web application written by another group and the entire site is built in a - header, left side menu, right side content - frameset.

For one, when VPN'd to my network I constantly get a "website.com/frames.html" cannot be found." error message. This doesn't happen when I'm on the internal network.

Second, the app has a built in email/messaging system. The number of unread messages is shown in the left side menu frame as "Messages (3)" but the count doesn't update as I read the messages. The developer told me since it was in a frame I needed to right click on the menu and 'Refresh'. Seriously????

So, my programming related question is, what reasons do you have for not using frames in a website?

+5  A: 

http://www.html-faq.com/htmlframes/?framesareevil

Heres a good article on why frames are evil :P

Paul Janaway
+2  A: 

My number 1 reason not to use frames is because they break the bookmark (aka favorite) feature of browsers.

With the technology that exists today, frames have become obsolete. But if your legacy project still uses them, you can make the messages update with some ajax.

Peter Di Cecco
Funny thing is, this is a new app. I don't know what they were thinking.
rvarcher
A: 

They almost always make people angry. What more do you need?

Nosredna
They indeed have done that. I think I'm dealing with a developer who is very detached from the end-user experience.
rvarcher
A: 

Frames were vaguely useful when you had a static Web site, to avoid repeating navigation menu in all pages, for example. It also reduced overall size of page.
Both these arguments are obsolete now: sites doesn't hesitate to server fat pages, and most of them are dynamically built so including such navigational parts (or status, etc.) has no problem.

The "why" part is well answered above, partly by your own question (you hit a limitation, although it can be overridden with a bit of JS).

PhiLho
A: 

The #1 reason? Users hate them.

Even if they offered advantages in other areas (separation of code, application design, speed etc) they are part of the User Interface. If users don't approve, don't use them.

Spencer Ruport