There's no need to mention that the vast majority of professional web sites use server-side applications to generate their pages, like PHP, ASP, JSP etc. Neither I have a point to discuss the advantages of all that stuff. The only issue is you need to pay more for hosting if you want to run server-side programs. However if the web site is not a crucial part of your business, you may find that service unaffordable.

I am going to introduce another technique that produces pages acting much similar to those generated on server side, but actually running on client side. I have no idea if this approach is being used elsewhere so far, so I call it "Active Client Page", assuming the ability to run a web site of any size within a single active page, generated by web client (browser).

Basically the Active Client Page ("parental control" ACP) combines two techniques: Client-Side JavaScript Templates and passing parameters through a persistent frame (usually parent frame). One more optional trick is conditional script linking, that is particularily useful if you want to run a kind of "database" on the page.

What the JST is and how to use it is described in details in my previous work Client-Side JavaScript Templates. Please check it before going further on.

Any kind of active pages use parameters to determine what content to be generated. Unlike server-side applications, that receive parameters via HTTP GET or POST methods, the ACP has to store them somewhere on the client side while the active page is being modified. This tutorial covers a technique where page parameters are stored in the parent frame (I call it "parental control". Another trick where parameters go through window's Location - "fake GET" - is subject of my next tutorial on ACP). Thus any ACP takes at least two HTML files: an invisible parent one with a frameset and JavaScript parameters, and the actual page, which can optionally take the whole window's space. Some tricks should be applied in order to prevent the page from loading outside the parent frame.