I was reading a techrepublic article, Avoid frame-based layouts in favor of alternative designs, which presented some insights about the use of frames. This article generated an interesting discussion, which reminded me that there are many web designers/developers who are avoiding frames, but are sadly only doing so as it’s the trend.
A couple of reasons sited for using frames were i) to share common content/navigation, and ii) quick page loading, as only the new content needs to be reloaded.
Several approaches to solving the 2 problems were mentioned in the thread, and I’ve used most them:
– dreamweaver templates
– include (using asp, php, shtml, coldfusion)
– ajax (methodology)
– using css to control positioning of shared items
Yup, what we choose depends on what we are trying to achieve. I still use frames and iframes, even though some of my sites use include. I sometimes find the need to apply both. Off the cuff, I can think of 3 examples:
1) A coldfusion driven site which although shares navigation using includes, needs to incorporate a calculator and page content which was previously developed in another language/tool.
2) In a fund portfolio page, the fund history for a particular fund is presented in a table beneath the summary fund listing. The tricky part is, the fund history is very long, which means the need to scroll down the page to view it all. We needed the fund history table heading to not scroll beyond the top of the screen, else all that data becomes meaningless. Using CSS will work only if the table heading position is fixed to begin with. Unfortunately, its position depends on the number of items in the fund summary. Constrained by time, the next best option was used – Frame.
3) a .php site had to include within its framework, an .asp form, which unfortunately was hosted at a data centre. Our answer – iFrame.
I admit, I do try to avoid frames and iframes if there is no need for them. But if it solves the problem without adverse effects given existing constraints, we need to be practical.