homepage Welcome to WebmasterWorld Guest from 54.234.225.23
register, free tools, login, search, pro membership, help, library, announcements, recent posts, open posts,
Become a Pro Member

Visit PubCon.com
Home / Forums Index / Code, Content, and Presentation / HTML
Forum Library, Charter, Moderators: incrediBILL

HTML Forum

This 55 message thread spans 2 pages: 55 ( [1] 2 > >     
Pros and Cons of Frames
ShawnR




msg:617822
 5:16 am on Apr 15, 2003 (gmt 0)

Hi

This is probably going to show up my ignorance big time... (It will also probably show my bias...)

Could you guys tell me why there is such a strong sentiment against frames. (It seems that many posts asking for help with frames start off with an apology, such as 'I inherited this site and need to do maintenance...'.)

Just as a primer, here are the issues I can see:

Disadvantages of using frames (for navigation, say):

  • Orphaned pages (Solution: Javascript to check if in framed context, and if not, to reload() the frameset, passing the current page as a parameter after the '?')
  • Bookmarking results in the index site being bookmarked, rather than the sub-page (Solution: Browser dependant. e.g. in IE right click on the frame to be bookmarked, rather than using the top menu)
  • Search engine visibility (Solution: Put a good noframes section, including site map. Search bots are becoming smarter, anyhow.)
  • Back button problems (partial solution: Use releoad() instead of href=...)
  • Sync'ing selected menu option in 'nav' frame with 'content' frame. (Solution: Javascript called by onload() to check and correct)

Disadvantages of using alternatives to frames:

  • Code repetition (e.g. menus repeated on each page)... A pain to maintain (Solution: Dynamic or CMS generated pages, or some HTML editors may automate this ...but I use text editors ;-( )
  • Slower page download (Solution: Not that big a deal if browser has a decent caching mechanism)
  • Fancy CSS solutions are difficult/impossible to get working cross-browser, particularly if support for NN4.x is required

Shawn

PS. Apologies if this is posted to the wrong forum. I couldn't figure which would be the best, so in the end I decided to post to the forum which would most likely have the strongest opinions.

 

tedster




msg:617823
 5:50 am on Apr 15, 2003 (gmt 0)

Great post, Shawn. From my perspective, a lot of the prejudice comes from a few years back when search engines were much more stupid and DHTML solutions for synching the navigation cues were harder to trust.

BUT....

I'll share my experience with "flattening" two framed sites, one with no content or graphic changes. I expected better search engine listings, and that happened. So I expected more traffic and slightly more repeat traffic because of bookmarking, and that happened.

But here was the big surprise. I watch a stickiness statistic for my clients - pageviews per unique. I thought this would naturally go down a bit, because I wasn't loading three pages into a frameset for one single page view.

But in both cases, pageviews per unique nearly doubled. That amazed me, but the stat held up, week after week.

I now believe that only some people really "get" what frames are all about - especially the more technically minded, left-brain types. For a significant percentage of the population framesets are a mind boggle. Frames are just too much of departure from the normal paradigm of a web page for these users to feel comfortable.

I've since had the joy of introducing my 82 year old (and very right brained) mother to the web, and I saw this phenomenon in spades.

To be even handed here, I've never tested a frame site that has all the protective bells and whistles that you outlined so well. And that might make a difference. But it's also a lot of work.

So for my work, I go the "easy" way and stay with flat HTML pages. Nearly double on pageviews per unique convinced me that no matter how much I may appreciate frames, there is a significant group who never will.

tedster




msg:617824
 5:59 am on Apr 15, 2003 (gmt 0)

By the way, there are some situations where I still create framed pages, but I never a framed site any more.

In one case, several websites share a very large set of calendars. The data for the calendars is created without navigation and then each website frames it (or iframes it) surrounded by their own navigation.

This page is one of the highest traffic pages on the main website, so we know that it's working. But it's also a frequent exit page - hard to tell if that's because of the frames or if that's because of people having one single purpose when they come to it.

A similar use involves some software support FAQs that are used by multiple sites. So I do feel that there are some uses for frames, but I'm quite wary, because I've always seen business increase when frames are eliminated.

Perhaps someone has done a re-design in the opposite direction and turned a flat site into a framed site. I'd love to hear a report on how that worked out.

Sinner_G




msg:617825
 6:30 am on Apr 15, 2003 (gmt 0)

Code repetition (e.g. menus repeated on each page)

Solution: includes.

Just count the points on your own list: advantages of frames 3, disadvantages 5. Of course all can be solved somehow, but why make things more complicated than they have to be?

gsx




msg:617826
 8:09 am on Apr 15, 2003 (gmt 0)

But you also have to weigh the pros and cons of using frames e.g: Orphaned pages. These are 'easy' to overcome using JavaScript? If the use has JavaScript disabled it does not work. If the user arrives through AskJeeves/Teoma, the site is put into frames and this breaks the JavaScript, leaving the page an orphan. This is a serious problem.

In fact, I broke out of frames because of AskJeeves. I had loads of visitors from them but no orders. Reason - orphaned pages, causing the shopping cart to break too.

Search engine visibility is better than flat sites. Think about it...you have extra sets of meta tags, title tags and so on... You can also break down pages into separate frames to increase keyword count for each individual file.

If frames are done correctly, people hardly notice that they are there at all, and increase the logic in the page layout. The problem is, people often don't use them correctly.

piskie




msg:617827
 8:26 am on Apr 15, 2003 (gmt 0)

>>Search engine visibility is better than flat sites<<

I don't think so in fact I know so.

I inherited a couple of framed sites and both clients insist they stay that way but that leaves me walking through treacle as far as SE visibility progress is concerned.

You are fighting with one hand tied behind your back. There are many ways to improve both usability and SE visibility but in my experience, you never catch up the handicap/s of frames.

balinor




msg:617828
 12:27 pm on Apr 15, 2003 (gmt 0)

If it is redesign of the menu structure that you are concerned about if you use "flat" pages, you can use a simple javascript menu that resides in a separate .js file. When you want to update the menu, just update the .js file and all your pages will regenerate automatically.

Of course the disadvantage of this is that the bots won't pick up the .js, so you will need to include a link on each page to a 'site map' file or something along those lines for the bots to follow.

Not sure if this is the ideal solution, but it worked when I recently 'flattened' a framed site.

-Padraic

gsx




msg:617829
 12:51 pm on Apr 15, 2003 (gmt 0)

but then people who disable javascript don't get the navigation, even if they come in via your home page.

It is very simple to have a bot friendly framed site:

1) Create TWO index pages that are identical except one is generated by javascript and one is raw HTML. In the JavaScript version read in parameters and dynamically generate the target page, so you can call enter.html?page=content.html or enter.html?page=more.html

2) You might as well use noindex, nofollow on the JavaScript version for the robots meta tag.

3) In the NoFrames section of the index.html, reference all the initial framed pages. So you may have <noframes><a href="menu.html">Browse the menu</a><a href="home.html">View the home page</a></noframes>

4) The page references in the noframes section will have links in them and search engines will deep crawl you site.

5) Next, you need JavaScript redirection for pages not framed when called upon. This needs to use location.replace() and not location.href="" so that the back button is not disabled (this procedure can get you dropped from engines upon manual check, also Overture, ESpotting etc...). It is important that you do not reference the index.html file, but the enter.html file with the page name as the parameter. The page name can be found using the location.href variable and can therefore be put into an external javascript file if you wish.

It is not perfect, AskJeeves is a nightmare for framed sites. But working with "one hand behind my back", I managed a consistent top ten position on a highly competitive term and was in position one for months on Google, Inktomi and FAST.

When I changed my site to a non-framed version, it was not because I wanted to lose the frames, it was because I had made them redundant (previously a Javascript shopping cart, which needed to store the variables in the parent frame so the basket was not lost when browsing pages).

The whole point about frames is DO YOU NEED THEM? If the answer is no, don't use them. But the same thing applies to any ActiveX control (including Flash), JavaScript and so forth...

The key to good web design is that you need to use the bare minimum that you can get away with. A web designer who specialises in Flash site design, should use Flash, but a marketing company should not use Flash for navigation (which is something I saw today).

Less is more. Less is even more when you look at handheld web surfing devices and Internet TV. I imagine some of these devices cannot handle JavaScript, ActiveX or frames.

ShawnR




msg:617830
 2:04 pm on Apr 15, 2003 (gmt 0)

Hi all, and thanks for all the input so far.

Ted, your 'pageviews per unique' phenomenon is very intriquing. I can't understand why it should be so... Maybe it is the 'webpage paradigm' you mention. Alternatively it is possible that some visitors might find the framed site easier to navigate, hence find what they are looking for without feeling the need to look through each page, in which case some may say the increase is a bad thing. Would make a fascinating research topic...

Sinner, thanks for the tip re SSI. I've just gone and searched WebmasterWorld and 'flagged' a whole bunch of SSI related threads for further study. Fun, fun, fun. I don't think it helps in sites which give navigation cues, however. You'd still need to manually paste the code into each page, and alter each page slightly to show which nav button is selected.

gsx, I take you point re AskJeeves. Most of the orphan protection code in common use just checks the orphaned page is not at the top. To do it properly, it should check that what is at the top is its legitimate parent...

Padriac, great idea to put the menu in a bit of Javascript. Could put a link to a site-map in a <noscript> tag...

gsx, why do you need the 2 versions of the site? Is index.html just for those who have javascript disabled? In which case, can the html go in a <noscripts> tag instead?

So, to sum up the posts so far... Looking at the list of pros/cons in message #1, there don't seem to be any major additional disadvantages of frames, but at least one of those disadvantages listed, the Search Engine one, is very significant. Also, Ted's 'pageviews per unique' phenomenon is a very compelling argument. (The other disadvantages, I believe, can be solved. While solving them does take some effort, it is done once in a web developer's life and then should become part of his/her library, and that effort could be weighed up against the recurring effort of maintaining menus across multiple files in a flat site.)

I'm still not sure... Perhaps the way to go is to have the menu options generated (into a static webpage) by a CMS or some perl.

Shawn

Craig_F




msg:617831
 10:11 pm on Apr 15, 2003 (gmt 0)

> Ted, your 'pageviews per unique' phenomenon is very
> intriquing. I can't understand why it should be so...

I'd bet this was due to attracting more higher quality visitors from the SEs after the removal of the frames. They'll click around more if they are pre-qualified better.

MWpro




msg:617832
 10:20 pm on Apr 15, 2003 (gmt 0)

It is a waste of time to even bother with .js files or frames... just use php includes and all of your problems will be solved.

ShawnR




msg:617833
 10:53 pm on Apr 15, 2003 (gmt 0)

"It is a waste of time to even bother with .js files or frames... just use php includes and all of your problems will be solved."

Not really... You need both client side processing and server side processing. There are problems that one can solve that the other can't. Some sites need only one, some need neither, some need both. And then, for sites which do need server side processing, php is not always the right choice. I am a great fan of php, but I strongly believe that decisions need to be made based on weighing up the pros and cons rationally.

This is technology, and we are scientists/engineers/technologists. If we don't make rational decisions we risk becoming zeolots of one technology or another. No one would be dissatisfied or question, so there would be no progress, no new technologies.

So, if you can explain how you can write something like a simple calculator application with push-buttons in php, then we are probably at the point to debate whether php can compete with .js. But my view is they are different, good for different things, and live side-by-side rather than compete with each other.

Shawn

karakas




msg:617834
 11:08 pm on Apr 15, 2003 (gmt 0)

MWpro,

never make anything simple and efficient when a way can be found to make it complex and wonderful ;-)

On my site, I use a PHP-generated dynamic menu in a left frame, and the content in the main one. Each file in the main frame has its own navigational text links (Up, Down, Top and Home) on the top and bottom, thus making each article fully navigational in itself, even in a non-framed context. Using white as background makes the left frame invisible in most cases (unless you happened to have opened a lot of menu entries). The content itself, the articles, are generated by some scripts from a LyX source. This way, I don't have to bother neither about JavaScript, nor about navigation. Yes, it's complex and wonderful - but also simple and efficient :-)

Regards

Jon_King




msg:617835
 12:10 am on Apr 16, 2003 (gmt 0)

1) Wasn't the concept behind frames a speed issue of modems, hard drives and caching schemes which are not really issues any longer?

2) Aren't frames simply an out dated architecture?

3) Can they be a confusing end-user navigation system because of split screen actions?

IMHO - yes, yes, yes.

My heart loves to build framed sites I think they are cool and have a nifty high tech feel to me as a coder.... but the business rational against using them wins out every time.

tedster




msg:617836
 12:12 am on Apr 16, 2003 (gmt 0)

> Ted, your 'pageviews per unique' phenomenon is very
> intriquing. I can't understand why it should be so...

I'd bet this was due to attracting more higher quality visitors
from the SEs after the removal of the frames.

That may well acount for some of it. Other stats that went up (although not double) were repeat purchasers and frequency of purchasing from those regular customers. So even those who bought from the framed site seemed to convert better after the frames were dropped.

This was a pretty good test case - albeit only one site in one niche market. The flattened site was identical graphically, except that the header and the nav bar now scrolled off the screen. The first page load looked the same.

MWpro




msg:617837
 4:33 am on Apr 16, 2003 (gmt 0)

"So, if you can explain how you can write something like a simple calculator application with push-buttons in php, then we are probably at the point to debate whether php can compete with .js. But my view is they are different, good for different things, and live side-by-side rather than compete with each other."

The issue here is not javascript vs. php in general, the issue specifically relates to navigation. If you want to debate php vs js for a calculator, go for it... but do it in a different thread. When it comes to the search engines:
-"Of course the disadvantage of this is that the bots won't pick up the .js, so you will need to include a link on each page to a 'site map' file or something along those lines for the bots to follow." - So why go through all this trouble? php includes will be accessible to pretty much everyone, and the bots will pick the pages up as well. When it comes to navigation to replace frames and you don't want to manually update the menu on each page, server side processing is the way to go, and the easiest and most common is php.

jayjay




msg:617838
 5:00 am on Apr 16, 2003 (gmt 0)

Wrt frames as areas of major navigation and site design:

Sites with frames may have something in common with many all-Flash sites, in the sense that both frames and Flash can be used to represent a sense of continuity by having some part of the "page" that largely stays the same. And, by "stays the same" I mean, it doesn't go away and come back with each new page load, rather, it loads once and literally stays fixed.

If we want to help the users feel like they are *in* the site, based on the way things work in the physical world, we might assume that having some boundaries of the site (the frames) that stay there continuously communicates this containment, and that this can grant the users the experience of being immersed in the site.

But, I think Tedster is right in saying that, somehow, frames often DON'T match the user expectation/perception of how websites work. Is this just because the majority of sites don't use frames? Maybe.

I think there might be something deeper, where the perception of "continuity" on the web is so totally different than the physical world, that it is literally disorienting for some piece of a site to just sit there continuously, without changing with new page loads.

I think it actually makes more sense to us somehow for new pages to completely reload, and that this is because we somehow perceive time on the web as starting fresh with each page load. Does anyone else sense this?

Wrt interaction design, like in filling out forms and other "task completing" behavior, sometimes frames are good or necessary to help users complete tasks where, for example, the frames allow the task-to-result flow to happen faster.

Personally, I avoid designing/building with frames, but am glad that there is the option to use them, because sometimes, a frame does the job best.

ShawnR




msg:617839
 5:58 am on Apr 16, 2003 (gmt 0)

"... The issue here is not javascript vs. php in general...

Sorry, MWPro, I misunderstood your post. Now that you put it in context, my reply makes me look like a bit of an idiot.

Sorry

Shawn

Sinner_G




msg:617840
 6:22 am on Apr 16, 2003 (gmt 0)

About SSI for navigation:

I don't think it helps in sites which give navigation cues, however.

In ASP it is quite easy to make a small script saying If ActualPage = NavigationItem Then img="nav_item_highlighted.gif", Else img="nav_item.gif".

I'm certain the same result can be reached with PHP or even JS.

gingerbreadman




msg:617841
 6:28 am on Apr 16, 2003 (gmt 0)

What percentage of your sites that your build use frames?

Mine is about the 0% mark. Used to be slightly more.

tconey




msg:617842
 7:35 am on Apr 16, 2003 (gmt 0)

I'm a newbie to this forum, so forgive me if I appear naive. I am ...

Why, throughout this discussion, has there been no mention of templates? Easy site updating, no frames, description and stuff can be setup to be individual, 'same page' look and feel that comes with frames. I *did* experience some trouble trying to get a drop-down js menu to work, and eventually scrapped it,

a caveat...I am talking about self-created templates, not those ugly, useless, wrong-coded, cookie cutter thingies. I have my pride.

<sorry, no personal URLs>

Tim

[edited by: tedster at 7:00 pm (utc) on April 16, 2003]

jamesa




msg:617843
 7:43 am on Apr 16, 2003 (gmt 0)

Great thread. Two points I'd like to add:

1. I never like to think of javascript as a solution to a site navigation problem. The site needs to work without javascript, then let the js add to it like icing on the cake. Don't forget about old browsers, browsers with js disabled, the handicapped, other/future devices, and user expectations/conventions.

2. I think the big prejudice against frames has much more to do with their misuse than anything else. Again it comes down to assumptions about your user's environment and behavior. I've seen sites with a vertical non-scrolling frame that contains the site's navigation, but at my screen resolution part of the menu is cut off and I can't get to all it. Or the right side of the menu is cut off. Or a thin horizontal frame that is too small because the fonts render at a different size on my system than the designer intended. etc, etc

Frames certainly can be used very effectively however. I once created a page with several scrolling frames so we could present lots of different data in a compact area. It was very effective, though this was on an intranet where we were able to dictate the minimum browser/system requirements. I wouldn't of built that same page on the web.

But now, in this day and age, I can see CSS (scrolling boxes) replacing frames altogether. Why not use a CSS layout that degrades nicely instead of a frames layout that doesn't degrade at all?

albert




msg:617844
 7:58 am on Apr 16, 2003 (gmt 0)

This thread is a very good overview to cover the frame theme. Thanks, everybody.

As gsx said (msg #8:)
The whole point about frames is DO YOU NEED THEM? If the answer is no, don't use them.

Crucial point for me: to solve all frame-related problems you'll have a lot of extra work to do. So I use frames only if they can really do better for a certain function.

tedster




msg:617845
 9:19 am on Apr 16, 2003 (gmt 0)

I'm not so sure that frames even belong in the HTML spec, in the long term. We haven't really touched on this so far in the thread, and we shouldn't go into any explicit details that might teach dirty tricks, but frames have a very checkered history, especially the 100% and 0% kind.

All kinds of exploits and dirty tricks can be run on people [and search engines] via frames and iframes -- although most of the personal exploits also include some kind of scripting.

In my most radical moods, I think that browsers should just stop supporting frames right now, but I know that's not practical. After all, I'd have a lot of re-coding to do if that happened.

[edited by: tedster at 10:06 am (utc) on April 16, 2003]

George




msg:617846
 9:48 am on Apr 16, 2003 (gmt 0)

As a none techi user, I never liked frames. The web sites that used them always seemed to be stopping me doing what I wanted, see what I wanted etc, and a significant % of the time, looked wrong on my computer. They seemed to be trying to take control.

Then when I came across the ask jeeves problem, that annoyed me as it broke my shopping cart too, and I had to get a fix.

As has been said a couple of times now, a php include is available to most, and is so simple to use.

I never got into templates, except on someones site in front page, and because of that I am biased against them... probably unreasonably!

George

digitalghost




msg:617847
 10:08 am on Apr 16, 2003 (gmt 0)

>>but frames have a very checkered history, expecially the 100%

I contracted a little while ago to re-optimize two sites that used the 100% variety. Both of the sites had slipped from the top ten to the top 50 for their phrases. After removing the frame source and reworking the code to get it to validate the sites started climbing in the ranking again. The page sizes dropped from 30-40k to around 11k. Both sites are now written in XHTML and CSS.

Add scripting? Just to make sure frames get pulled? Add noframes? Huh? What? Isn't the idea to get pages as lean and mean as possible?

I've been taking a minimalist approach to SEO lately and it seems to be working. Fewer nav choices, fewer pages, smaller pages, fewer graphics, more emphasis on text presentation, putting as much info above the fold as possible. When I hear that frames are needed I start thinking of sites that want me to scroll forever down some nav element so I can find what I'm looking for. Don't make the punters look for anything. Put the info right in their faces.

I'm interested in hearing about sites that need frames. To me it seems that restructuring the IA would be a better fit than adding a frameset. Multiple sites rather than one large site? Subdomains?

chris_f




msg:617848
 10:48 am on Apr 16, 2003 (gmt 0)

Just a few notes:

Orphaned pages (Solution: Javascript to check if in framed context, and if not, to reload() the frameset, passing the current page as a parameter after the '?')

....

Back button problems (partial solution: Use releoad() instead of href=...)

Sync'ing selected menu option in 'nav' frame with 'content' frame. (Solution: Javascript called by onload() to check and correct)

Use JavaWhat?!?!? Oh! That thing I switch off in Opera ;). My studies are beginning to show that even basic web surfers are beginning to switch off JavaScript. It has leaped from 2% to 15% in the past year.

Search engine visibility (Solution: Put a good noframes section, including site map. Search bots are becoming smarter, anyhow.)

Most major search engines are beginning to play down or ignore noframes as it is being used for spamming. Similar to the keywords meta tags.

Code repetition (e.g. menus repeated on each page)... A pain to maintain (Solution: Dynamic or CMS generated pages, or some HTML editors may automate this ...but I use text editors ;-( )

Solution : Server Side Includes.

Fancy CSS solutions are difficult/impossible to get working cross-browser, particularly if support for NN4.x is required

Just like EVERYTHING in life. You need to learn. Once you have developed the skills this is not an issue.

Another Disadvantage To Frames
Most 'special needs' browsers (especially the sector leaders) don't support frames.

Chris

gsx




msg:617849
 10:52 am on Apr 16, 2003 (gmt 0)

digitalghost, there are some sites that do require frames.

For example, JavaScript shopping carts. Some shopping carts can be done with cookies and JavaScript only, but that is very restricting and can cause problems as cookies are limited in size and quantities accepted.

My opinion is that 95% of framed sites do not need to be framed. My opinion is the same on Flash and rollover effects. The trouble is that these problems are due to relative 'newbies' in web design. They see a feature of HTML and they MUST use it! (Like 1997 style) They don't always work for small companies either - I see pointless frames and Flash in huge international commercial companies who don't think twice about spending one hundred thousand dollar on a couple of adverts but their websites are terrible and a disgrace to the web design community.

Jon_King




msg:617850
 12:07 pm on Apr 16, 2003 (gmt 0)

Jayjay I think you are right on with the subtleties of the user experience. Sure frames can work well, sure there are places where they may even be the best tech solution but I will still put my money on your insight of user perceptions.

mvl22




msg:617851
 12:41 pm on Apr 16, 2003 (gmt 0)

"I don't think [SSI] helps in sites which give navigation cues, however. You'd still need to manually paste the code into each page, and alter each page slightly to show which nav button is selected."

Not necessarily so - you can implement SSI in PHP automatically without having to insert server instructions on the page: see this thread:

[webmasterworld.com...]

This 55 message thread spans 2 pages: 55 ( [1] 2 > >
Global Options:
 top home search open messages active posts  
 

Home / Forums Index / Code, Content, and Presentation / HTML
rss feed

All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Home ¦ Free Tools ¦ Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About ¦ Library ¦ Newsletter
WebmasterWorld is a Developer Shed Community owned by Jim Boykin.
© Webmaster World 1996-2014 all rights reserved