This section is intended for people familiar with the development of either traditional web applications or desktop applications, who are entering AJAX enabled web application development. AJAX application development has a few special characteristics with respect to other types of applications. Possibly the most important one is how the display is managed in the web browser.
The web was originally not built for applications, but for hypertext pages that you can view with a browser. The purpose of web pages is to provide content for the user. Application software has a somewhat different purpose; usually to allow you to work on some data or content, much of which is not ever intended to be accessible through a web browser as web pages. As the web is inherently page-based, conventional web applications had to work with page requests and output HTML as response. JavaScript and AJAX have made it possible to let go of the pages.
Pages are largely an unknown concept to conventional desktop applications. At most, desktop applications can open multiple windows, but usually they work with a single main window, with an occasional dialog window here and there. Same goes usually for web applications developed with IT Mill Toolkit: an application typically runs on a single page, changing the layout as needed and popping up dialog boxes.
Not having to load pages and use hyperlinks to communicate all user interaction is a relief for application development. However, they are an important feature that ordinary desktop applications lack. They allow referencing different functionalities of an application or resources managed by the application. They are also important for integration with external applications.
Certain resources can be identified through a URI or Universal Resource Identifier. A URI can easily be passed around or stored as a bookmark. We will see in Section 9.3.1, “URI Handlers” how you can retrieve the URI of a page request. Similarly, a page request can have query parameters, which can be handled as detailed in Section 9.3.2, “Parameter Handlers”.
Using URIs or request parameters to access functionalities or content
is not as straight-forward as in conventional page-based web
applications. IT Mill Toolkit, just as any other AJAX framework, uses
browser cookies not just for tracking users but also for tracking the
application state. Cookies are unique in a browser, so any two
windows share the same cookies and therefore also the state. The
advantage is that you can close your browser and open it again and
the application will be in the state where you left off (except for
components such as text fields which did not have the immediate
attribute enabled). The disadvantage is that there is no good way to
distinguish between the windows, so there can usually be only a
single application window. Even if there were several, you would have
trouble with synchronization of application data between
windows. Many conventional page-based web applications simply ignore
out-of-sync situations, but such situations are risky for application
platforms that are intended to be stable. Therefore it is safer to work with a
single browser window. If you wish to have multiple windows in your
application, you can create them inside the main window as
Window
objects. A URI can be used to fetch
resources that have no particular state or to provide an entry point
to the application.