On 8/8/07, Asthana, Rahul <[EMAIL PROTECTED]> wrote: > Besides,I was also interested in how things like workflow are handled in an > "AJAX based > framework", as opposed to a webapp that "happens to use" AJAX .
Conventional web applications tend to use a different page for each top-level view. If we are using a tab-motif, each tab is usually a separate (thin) page. In an AJAX application, each tab is often a separate div of the same (rich) page, and we make the appropriate div visible or invisible. In a conventional web application, workflow means bouncing between thin pages, and trying to maintain state as we go. In an AJAX application, we tend to bounce between divs on the same rich page. A very handy difference is that we can store state on the client-side as JavaScript variables. Another big difference is that we don't have to resort to gizmos like Tiles and SiteMesh to retain look and feel. Instead of swapping page fragments between requests, we can swap divs progmatically. Of course, we've been trying to simulate this approach in thin pages for years. I can remember doing the same sort of thing in Perl eons ago. We would output the base page, switch to the panel to insert for a given request, and output the rest of the base. Conventional ASP.NET does the same sort with its panel control. The difference is that with AJAX it is not a simulation. It's the real thing. The client is actually changing the content in the middle of the page. The very best part is that the AJAX architecture creates a very clear separation between model and view. In a conventional web application, we tend to muddle the action workflow with the concerns of both the model and the view. In an AJAX application, it's much easier to keep all of the model concerns on the server-side of a JSON request, and keep all the the view concerns client-side. IMHO, if we had today's JavaScript/CSS/HTML environment available to us in 1998, then JSP, ASP, JSF, PHP, and all the rest of it, would not exist. We did all these things to make up for the shortcomings of the client-side environment, and, since then, the key shortcomings have been addressed. -Ted. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]