The IPPs (Internet Presence Providers) probably won't be happy with this little essay. I'm about to tell you to run your programs on your server, not on the client's machine. They want as much as possible run client-side of course, they make more profit that way. But, they get paid to run your programs, so let them do so.
There are many advantages to running server-side. Server side programs can do a lot of things that the client-side programs cannot do. They can also do almost anything that the client-side programs can do. Even with a program running server side, a browser might lock up or crash once in a while because it can't quite deal with the program. You are much less likely, however, to run someone's computer out of memory and crash a whole system.
One of the reasons I tell people to go easy on the javascript is that it is client-side. Also, much javascript is carelessly written, and can be a problem for that reason. Java is not the same thing as Javascript, just so you know. Java is a pretty fussy language, and has to be written reasonably well to work at all. Javascript is always client side, in fact is included as text in the web page. Java can be either client-side (Java applets) or server-side (Java servlets).
For navigation, you can use a server side CGI program to make those nice little pull down navigation menus - only difference is you need a "go" button. It's better with the button anyway - people who are uncoordinated, like me, can correct their selection before they end up on the wrong page. The other advantage is that the menu can also be used by those who have Javascript disabled.
The biggest advantage of server-side is that it works for everyone that can get the output at all. Serving a server-side image map to a browser that won't see graphics will not work, and you can't send music to a computer with no sound card. But in general, you have much broader range of happy visitors with server-side scripts and programs.
For an example of server-side : If you go to one of the my site pages which has the .shtml extension, for instance change.shtml, you will see a list of links on the right side of the page. On that page; however, the links are not really on the page I wrote. They are in a text file which is stored on the server. The ".shtml" tells the web server to look for an include statement in the page and to insert the referenced text file in that spot. If you view source on that page, you will not see any sign of an include statement. What has happened is that the server replaced the include statement with my text file, and served you the page with the text file already in there. That means that even if you browsed the page with an old browser that supports almost nothing, you'd still see those links. If you had a client-side script put them in, the guy with the old browser would just be out of luck.
Furthermore - you don't have to put long lines of code in every web page that you want your program to work on - just a much smaller call to the CGI program. So if you want to reach the largest number of people with the least long-term effort, use server-side programs.
The
Webmistress Explains