2009 Mar 07
DHTML, is an abbreviation for Dynamic HTML, meaning a collection of technologies that allow for web pages that change (or appear to change) over time - usually in response to interacting with the user (i.e. viewer) or client side interactivity.
Initially this was only possible with CGI, and server side includes. The disadvantages of activity on the server is that it becomes a performance and communications bottle neck (due to limitation of latency and bandwidth) with the increased number of users (clients). Clearly, the solution requires something on the client side, with its natural easy extensibility for distributed computing.
This was partially achieved with browser plugins such as ActiveX controls and Flash, plus Java applets. There were, and still are, some browser compatibility issues with these solutions. One concept, introduced by David Seigal, allowed for dynamic experience by having a 1 pixel transparent GIF image whose size could be as needed. This was one solution for the bandwidth problem.
The introduction of JavaScript also extended the possibilities for interactivity and dynamic behavior (e.g. with forms), still leaving the page contents static, but gave a client side scripting language. The ability of JavaScript to create and use cookies, or local state, on the user's machine, gave some dynamic possibilities across sessions. The JavaScript write functions gave another ability to dynamically change things.
Later versions of JavaScript introduced the Dynamic Object Model (DOM) but there were compatibility issues with MS IE.
Another enhancement for flexibility came with the introduction of Cascading Style Sheets (CSS) which allowed for formating to be separated from contents either in separte files or within the web page itself. CSS gave the ability for a more flexible (absolute and relative) positioning, plus the layering of a page's elements. This is more flexible but not fully dynamic because not all elements and their properties are exposed to scripting and changes via user events (e.g. triggered by mouse activity) - although some are.
Another scripting language some browsers support is VBScript. All of this compounds the browser compatibility issues and requires extensive testing with the multiple different browsers.
2009