Frames (be it frameset OR iframe) are an accessibility failure. Many screen readers will fail to read their content, they usually break keyboard navigation, it prevents people from directly linking to content, the contents of the frame are treated separately from the actual page link by search engines, it requires more handshakes to the server which can usually mean slower loading pages despite any reduction in bandwidth – and it can often use MORE bandwidth since the content of each separate section is accompanied by an extra HEAD.
The same can be said for DHTML and AJAX when it comes to delivering content – A dearly departed friend of mine called AJAX when used for things like tabs “The new framesets” – and that was NOT meant as a compliment.
The reasons to use them are often outweighed by the reasons not to. If you practice semantic markup, separation of presentation from content, and build/include your markup’s static bits server-side (php, asp, shtml for example), everything else on the page should be cached and that extra two or three k on the page load really shouldn’t have an impact with everything else cached.
Of course, if you aren’t practicing modern coding techniques and have 20k to 50k of static markup for a template without the actual content in it, you won’t understand a word of the above…
Which is what makes it funny when things like frames, iframes, DHTML and AJAX are touted as bandwidth savers by people using 100k of HTML to deliver 5k of content – basically the same people who vomit up pages any-old-way then practice white-space stripping to obfuscate their ineptitude.
NOT to say I’m singling you out for that - “your first page” is fairly lean and a decent attempt – it does have SOME issues, but as a first page you’re already light-years ahead of many people who’ve been at it for years. I mean you issues are minor – multiple H1’s, H3’s around non-heading elements, DIV id=“header” around what SHOULD BE your H1, H3’s without the preceding H2, nonsensical heading tag orders, some unnecessary classes and DIV, non-breaking spaces used to handle formatting, as well as a handful of design issues like alpha transparency on the backgrounds making it painful to scroll in Firefox on anything less than a quad core machine…
As a “first out” that’s still not bad.