Having spent a couple of days investigating ajax (to meet some requirements that we have in a struts application for one of my customers) I decided to take a good look that the Echo2 stuff. Here are my thoughts:
I'm not sure that the Echo2 stuff is actually targeting the right end use paradigm for ajax. Yes, it looks really cool to have a full application running in a browser window- and we all know that cool demos get us programmers excited ;) However, I think for the vast majority of users the concept of a web browser that doesn't navigate through pages is a big leap, especially when many users have only just got the hang of pages and hyperlinks.
Where Echo2 seems ideally targeted is full-function applications deployed over an Intranet - e.g. business applications as opposed to web sites. Now, I've consulted for a large number of blue chip companies and I can't think of one that has ever wanted such a solution (even if it were possible). If they want a full-function application then they tend to write a proper application (e.g. Java Swing/SWT, VB, Delphi, X etc.). Deploying this sort of application via something like WebStart is a doddle in an Intranet environment. Where a web browser is used to host a solution then it is typically something like an information portal with large amounts of read-mostly data and small sections that are highly interactive. I just can't see the concept of a 100% ajax solution being something that these sort of projects would buy into. Also, such information portals usually want to integrate search and bookmark functionality, something you just can't do in a 100% ajax solution such as that proposed by Echo2.
Where I do see the requirement for ajax is in the highly interactive parts of such an information portal. Take a Wiki for example, I can't see any issue with using normal HTML page navigation to walk through the Wiki, clicking on links to switch pages and so on - this is how users have grown to expect a web browser to work. Where ajax comes into its own is when you want to do something highly interactive, such as editing a wiki page. Ajax could give you things like immediate text preview and so on without needing to refresh the current page. Another example might be a forum. Use HTML pages and links to find the forum section that you are interested in and then use ajax for the interactive part of selecting and displaying messages. Further examples of where ajax is perfect for interactive bits inside page based applications include: tax calculators, online insurance, GMail ;) and so on.
Having discussed it with collegues and done some thinking on the subject I am leaning more and more towards the belief that Echo2 is actually an anti-pattern for ajax. The Google approach of using ajax to make web pages more interactive seems a much more sensible and intuitive approach to take.
Now, if we assume that to be the case then I think Wicket is not far off from being able to support this hybrid ajax / html page approach. Obviously, Wicket rocks at HTML pages ;)
To do ajax all you would need is to expand Wicket something like as follows:
- javascript and css support
- ajax aware components that can be set to invoke ajax client side javascript event listeners as opposed to server side URLs
- an ajax requester to send messages from the javascript event listeners to an ajax dispatcher on the server
- an ajax dispatcher that receives ajax requests and invokes the appropriate component listeners for the current page
- an ajax responder that looks for any components on the page that have changed and gets them to rerender their HTML content
- an ajax updater that replaces the DOM elements in the browser for any components that have changed
For simple applications where the components remain consistent but just their content changes (e.g. hangman) then the above should be fairly trivial. The more complex situation is where whole areas of the page change through removal and addition of components. However I think provided you were working at the level of ajax aware panels then there should be no problem with replacing one panel for another with its own components and markup.
Food for thought for 1.1.......
regards, Chris
Jonathan Locke wrote:
do you have any thoughts on a list of requirements for ajax support?
[EMAIL PROTECTED] wrote:
It has been stated by others on this list and I see it on the proposed 1.1
features, but I would like to stress that supporting "AJAX" should be the
highest priority for wicket.
I believe that wicket has solid advantages over Tapestry/Struts/JSF, however, what will really turn interest toward wicket, and make it stand out from the crowd, would be solid support for AJAX.
Take a look at what echo is doing: http://www.theserverside.com/news/thread.tss?thread_id=32834
The echo demo really shows the advantages of Ajax for "web applications"
in particular. Echo2 is very nice but it is highly application and
programmer centric, which is nice for web apps with complex state that are
not easily modeled with "html pages".
Sam
------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Wicket-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wicket-user
------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Wicket-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wicket-user
------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Wicket-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wicket-user
