What Forms Cannot Provide
You've just seen how forms can become a very valuable addition to your Web site. I have described the HTML form as a potential cross-platform, simple user interface. There are still some features that are missing that prevent it from replacing other traditional user interfaces. HTTP requests and responses are pretty much atomic in nature. This means that a persistent communication channel between the browser and the server is not directly supported. The protocol was intended as a means of requesting and serving small files over the Net to produce fairly rich graphical content. The lack of a persistent server-side state is obvious. This problem will be examined later on in Chapter 16, "Advanced CGI/HTML."
Another problem lies in the fact that the HTML form is a static entity once it reaches the browser. This means that it cannot handle certain user events that most user interface programmers probably take for granted. For example, suppose you want to enable or disable a field, depending on whether or not something is typed into a text field. This is common practice for most graphical user interfaces, yet it is not possible using HTML forms. There are alternatives for doing this kind of thing. For example, Java provides this type of client-side executable capability. Embedding a Java applet within your Web page can give you some more powerful capability. However, this extra capability does not come free. You would have to learn how to program with the Java AWT (applet window toolkit), and the transmission time for downloading the applet can be higher.