Frames or no Frames?
To use Frames or not to use Frames...
That is the question...
I've kept away from using frames in any of my work where possible.
As much as I like some of the features that frames offer, such as
a static header area and side menu bar, there is still a number of
negative aspects to their use.
So what are these frames (framed sites) anyway?
A frames page itself contains no visible content; it contains
instructions on which pages to show simultaneously and how they
will be displayed within the browser window . Think of it as a
clear overlay, much like a panelled window frame - except this
window frame allows you to look into different rooms of the house.
A frames page can contain references to many other pages, but
usually they consist of references to pages to be used as the
header, the content, a left hand menu bar and a perhaps a footer
bar. When a hyperlink is clicked in one frame, say the left hand
navigation window, it will open a page in the content window, or
the target frame.
This makes site-wide changes easy to implement (especially when
used in conjunction with Cascading Style Sheets) as you can
change the items such as the menu bar and logo for your site in
one page, and that will update the entire site.
Using a frame for the header (top) area or navigation bar of your
pages will also make it static (fixed) so visitors can easily
access menus etc... no more scrolling back up the page.
All this sounds great, but there are a number of points you need
to consider before implementing a framed site, especially when
using WYSIWYG (What You See Is What You Get) web page editors .
1) Many search engines cannot index framed sites. Because the home
page is merely a frame, with very little content or hyperlinks to
follow, search engine spiders may stop dead on the page and have
'nothing to report'. A way around this is the proper
implementation of Meta tags and use of the "noframes" tag. (See
further resources at the end of this article)
2) If a search engine does manage to spider your site, visitors
from search engines may land on the content pages, rather than the
full-framed version, i.e. they may arrive on your site and all
they will see is the menu bar! For a work-around for this issue,
see further resources at the end of this article)
3) Non-frames capable browsers. Fortunately, only 1% of visitors'
browsers fall into this category. Once again the use of the 'noframes'
tag will assist, but to be used effectively you basically need to
create two sites, one framed, one not - the "time saving" is
suddenly gone.
4) Bookmarking. A visitor cannot bookmark a specific page in your
site without requiring additional customized scripting for each
page. Even then there is a risk of visitors landing on the content
frame, with no navigation frames to view.
5) Visitor opinion. Many find frames annoying.
6) Copyright issues. You'll need to ensure that all links within
your site that point to external sources open in a new window to
avoid copyright wrangles. There have been legal precedents in
relation to this issue. Many site owners object to their content
appearing in someone else's frame, to the point that special
"frame busting" code is used.
7) Internal linking. Special attention will need to be paid to
your internal links to ensure that any page pointing to, for
example, the home page opens as a "whole page", otherwise the
framed home page will appear in the target window, causing
confusion to visitors.
8) Printing issues. Visitors need to take further steps within
their print settings to ensure the information they want is
printed correctly. In most cases, a full page cannot be printed as
displayed on the screen, only in sections corresponding to the
frame.
9) Scroll bars, divider bars. If your framed site uses a number of
frames, scroll bars can prove to be unsightly. These can be
removed, but check compatibility with other popular browsers. (See
further resources at the end of this article)
10) External linkages to your site. If other sites wish to link to
specific pages in your site, it is more difficult for them to do
so.
11) Refresh/Reload problems. Again, special care needs to be taken
with coding otherwise when a visitor tries to refresh a particular
page, they may be taken back to the original frameset. A common
problem.
SSI - the alternative to frames
If you are a FrontPage user publishing to a FrontPage enable
web server, the "Include Page" function is very handy and easy to
implement. For others Server Side Includes (SSI) may also be an
option - it can save many hours in global site updates.
How to use SSI/includes
When using SSI, instead of creating entire pages, a basic
framework is used - empty tables for recurring elements such as
nav bars, headers and footers, plus an area for the content. Then
page elements such as navigation bars are created as separate
files - without <head></head> tags. In your template page, you
then "insert" the common files with the coding in the appropriate
position.
Example SSI Coding
'Normal' SSI
<!--#include virtual="/menu.htm" -->
or in the case of the element being in another folder
<!--#include virtual="/folder/menu.htm" -->
Note: to use "normal" SSI, you will need to check with your
web host first and probably rename your SSI enable pages to
.shtml. There is a workaround to having to rename all your pages
by adding the following to your .htaccess file:
AddType text/x-server-parsed-html .html
Be very careful when editing your .htaccess file and ensure
you don't disturb any of the existing coding within it - it should
only be opened with a text editor and a backup should be made
before editing. .htaccess files contain specific instructions for
certain requests, including security, redirection issues and how
to handle certain errors.
FrontPage SSI
To use FrontPage SSI (known as Include Pages) ensure you are
working within a FrontPage web, otherwise this won't work.
On the FrontPage menu bar:
Insert -> Component -> Include Page -> then navigate to the
element, click OK. You should now be able to see your included
element in both Normal and Preview modes.
PHP SSI Coding
If your web host supports php, you can also use the PHP version of
SSI - remember to exclude the <head> tags from your element pages.
<?php
include ("/navbar.htm");
?>
The file extension of your template page will need to be renamed
to .php - the Include element itself can be PHP or straight HTML.
Related learning resources
CSS Tutorial
Want a quick way to implement site wide formatting updates?
Cascading Style Sheets may be just the thing you're looking for! Michael Bloch
Taming the Beast
http://www.tamingthebeast.net
Tutorials, web content, tools and software.
Web Marketing, Internet Development & Ecommerce Resources
____________________________
Copyright information.... This article is free for reproduction
but must be reproduced in its entirety & this copyright statement
must be included. Visit
http://www.tamingthebeast.net for free Internet marketing and
web development articles, tutorials and tools! Subscribe for free
to our popular ecommerce/web design ezine!
Back to Articles Main Page
Love Spells |