Frames and a navigation bar & CSS

S

SpaceGirl

Spacen said:
Well yes, why not.




It I think it is for this type of thing because it's used to get around the
problem of having multiple duplicate fragments of html in many html files.
It's not efficient either. The content has already been sent to the client
when the first page loads.

I am surprised that noone really agrees with me on this because it would
make web designers lives easier ( you could then test pages from a local
file system aswell - instead of having to go through a web server. - plus
the other advantages already mentioned ) The only single drawback is support
for it. But why wasn't it added after problems with frames came to light?

I think I've imposed my logic on everyone enough now so I'll desist.

You're entire argument is flawed. Try building a web site with SSI and
see how much easier it is, plus FASTER.

You have to bear in mind these days almost ALL sites are processed by
some sort of script at the server before the resulting HTML is spat out.
How else do you think databases work? Next you'll be telling us it's
better to have the clients extract the data from the database rather
than the server... eesh.

--


x theSpaceGirl (miranda)

# lead designer @ http://www.dhnewmedia.com #
# remove NO SPAM to email, or use form on website #
 
P

Philip Ronan

Philip Ronan wrote

How does the presence or absence of SSIs affect this particular scenario?
The SSI is done at the server. The UA knows nothing about what happens at
the server.

I sort of answered this in another thread. When you use SSIs, the server has
a harder time working out the content length and will default to leaving it
out. This makes it impossible for clients to use persistent connections,
because they have no way of telling where one resource ends and the next one
begins.
Could. But do the UAs do this? No.

and

(Navigator 2.0? Mosaic?? Yes it *is* quite an old document)
Do the servers support retrieving
multiple HTML pages in one (your second) transaction? No.

Er, yes again. Obviously Apache have supported this for quite a while (see
above). And it's all been laid out in the HTTP/1.1 spec for quite a few
years now.
HTTP is designed
to serve up one "page" per connection. It is stateless by definition and by
specification. One connection to the server, one page served.

Instead of pointlessly ranting at me, perhaps you could go and read up on
HTTP/1.1 and persistent connections.
 
S

Spacen Jasset

SpaceGirl said:
You're entire argument is flawed. Try building a web site with SSI and
see how much easier it is, plus FASTER.

You have to bear in mind these days almost ALL sites are processed by
some sort of script at the server before the resulting HTML is spat out.
How else do you think databases work? Next you'll be telling us it's
better to have the clients extract the data from the database rather
than the server... eesh.

It's not faster, it's slower obviously. It's not easier either. I can't see
my web pages without putting them on a server.
 
S

Spacen Jasset

rf said:
Spacen Jasset wrote

Do you have any idea at all how the internet works internally? Sorry to be
blunt but you are missing quite a few vital facts.

Traffic:

A page with SSI on it (lets forget about images for the moment) requires one
hit on the server. That is, two set of HTTP headers and TPC/IP packet
overhead, one up, one down.

A typical frame page requires four hits on the server, one for the frameset
and one for each frame (assuming header, nav, content). This uses eight sets
of headers etc. These are not small, haven't looked closely but I'd imagine
a couple or three hundred bytes at least. Yes, the returns appreciate after
the frameset is loaded but the first hits on the server are a bastard.

Server:

A page with SSI on it requires one transaction schedule. That is,
marshalling the incoming request, queing it if the server is busy, actioning
it and getting the results out the door. The time spent by the server to
actually assemble the SSId page is a small proportion of this whole. The
execution path length in the TCP/IP stack alone would be greater.

Of course the server has to read the page from its local storage BUT, after
the first hit the included bit is in the servers file system cache.

A hit on a framed page requires 4 of these. 4 times the processing. Once
again appreciating returns but that first hit is a bastard.

Network.

A page with SSI on it requires one round trip to the server. From where I am
a trip to a server in the U S of A costs me 400 milliseconds. So, my UA
sends off a request and waits... For 400ms... This is *not* a small amount
of time when one is looking at a screen waiting for something to happen.

A framed requires 4 trips to the server. 1600ms. 1.6 seconds overhead, over
and above the usual transport times.

Content.

SSI delivers one page, with one set of <!doctype, <head> etc. Frames deliver
four of this overhead.

The bottom line.

It is *quite* expensive to set up a transaction with the server. The actual
processing of that transaction is minimal, compared to the turn around time
over the net.

We went through this a while ago with regard to slicing up images, under the
misapprehension that a sliced image downloads quicker. An experiment
revealed that slicing an image into 9 bits resulted in an end user loss of
performance by a factor of 10.

Frames, while not quite so bad, are still bad from a network point of view.
Any savings made by sending out a slightly smaller package (once the
frameset has been set up on the browser) are far far outweighed by the vast
overhead of setting up that frameset to start with.

Any savings made by not sending the "included" stuff, usually a text menu
bar, are usually far outweighed by the size of the content in the "content"
frame. Why bother saving a couple of hundred bytes of menu when a single
click on that menu spews down tens of thousands of bytes of <img>?


Don't worry about it. Just use SSI and be done with it. If you are really
worried about performance issues simply up the compression on your logo
jpeg. You'll be better off.


So? Once you have worked out how your server works you are done with that
bit. You simply do it that way from now on.

No it's not true. Frames require one request per frame, and then one request
each time the frame content is changed. For static content that is never.

I have no misconceptions I assure you. I may well have to use SSI.
 
S

SpaceGirl

Spacen said:
It's not faster, it's slower obviously. It's not easier either. I can't see
my web pages without putting them on a server.

It is faster (less HTTP traffic), and the results get cached by the
client just the same as any other page.

It is easier... what can be easier than being able to instantly change
1000s of pages on a web site by editing ONE FILE? You can also 'include'
scripts, so if your site uses a lot of scripted content (such as
database access) you dont have to write the database code EVERY SINGLE
TIME into each page that access data - *YOU CANNOT ACCESS A DATABASE
FROM A CLIENT!* Windows XP has a built in web server. There are also
plenty of free ones. Even if you dont have a local server, if you are
using an editor such as DreamWeaver MX (or MX 2004), it will "virtually
include" the files when you edit in design mode so you can see the page
just as if it were all one file...

This is a daft argument anyway. Every professional designer uses
includes already - stop thinking of excuses and try learning the damn
things; frankly if you are still using frames to do this sort of thing
you are 5 years behind the game.


--


x theSpaceGirl (miranda)

# lead designer @ http://www.dhnewmedia.com #
# remove NO SPAM to email, or use form on website #
 
I

Isofarro

rf said:
Spacen Jasset wrote

<snip rf's excellent reply>

On average, N may not add any extra overhead when using an SSI mechanism. rf
briefly mentions TCP/IP packets, but this needs further explanation. A
TCP/IP packet tends to be a certain size - they used to be around 4K. When
a transfer of resources takes place over TCP/IP, the resource is broken
down into bite-sized chunks of 4K. Transmission time is a funtion of the
number of packets, not necessarily the byte size of the page being sent as
you claim above.

So if a menu is included on the server, typically the menu isn't very big
since its normally pretty simple HTML on average, it would not require
additional TCP/IP packets - unless you make a point of creating pages that
keep matching TCP/IP packet sizes.

So there you get a page that is as efficient as the frame-based menu -
without the initial overhead of bringing in a frameset, and without the
associated usability and accessibility problems of frames.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top