We are migrating a legacy web application to a J2EE solution. The old solution was implemented using frames. It's like this - a frame to display a list, when a particular item is selected, it loads other frames with the details of the item selected. When the details are updated, it triggers a refresh of the list frame. (Lot of inter-frame communication) We're discussing possible alternatives. I want to find out general/specific advantages/disadvantages of using frames with a Struts/JSP application. Thanks.
This thread would be better in the HTML/Javascript forum, but I'll have an opinion for you. Frames are the root of all evil anf should be avoided at all costs. Sound strong? Maybe it is, but they cause more problems than they solve, and if you have access to JSPs or some other server-side-includes you don't need them. I'm going to list a bunch of pet peeves about frames without justifying them
frames can get confused with external links and open those pages in frames
frames can be insecure since javascript can reach between them
frames don't save bandwidth if the page is designed to cache properly
frames can cause display problems and browser specific behaviour if you mix secure and non secure pages
frames take you back to the original page if you refresh the page
frames stop you from being able to effectively bookmark pages
frames may not be supported in all browsers
I'm sure I could think of more, but that's just off the top of my head. I once had to support an application that used frames and had this huge display framework where they could all communicate using javascript, and I now understand why you aren't allowed to take firearms to work. Just to appear balanced, here are some reasons to consider frames:
you want to include someone elses site in yours/have some pages provided externally
you want a common menu and you're lazy
you're insane
you have bunch of images and you aren't aware that the browser will cache them and you don't want them loaded again.
you think they look cool
OK, so I'm biased and that didn't work as well as I'd hoped. I hope this helps you though Dave