Great post perk, I have a curve ball or two to throw in the mix though
JS validation:
I believe JS validation should be a supplement to server end, in that its there merely to catch simple mistakes. The core and grunt should be done on the server. Why? Because it means some punk cant turn off his javascript and bypass your security measures. Any ajax requests should only be done because the validation you require cannot be done simply in JS. And when you submit the form it should still be validated server side. It is the only way to prevent dodgeyness.
Perk I think you under-estimate the power of XML within the AJAX framework.
Say for example you have an XML document, created dynamically server side, that lists all online members, their nick names, IP addresses and what not.
What I would do is create a number XSL stylesheets to parse the document into various xhtml fragments. For example with this one XML document [and call to the server] you could list all members online. Sort by username, ascending, descending, ip address, blah blah [you can sort them with about 1-2 lines of JS once you wrote the XSL]. You can also count how many people are online, how many people are online with attribute A being true.
The power this gives you is amazing, seriously. If you do ajax, then learn XSL, its possibly the best thing ive learnt in the past year. With the example I gave, it means you can change any part of the display process without changing the backend. XSL is also extremely maintainable, much more so than JS and of course its functionality doesnt vary between browsers, so you have less hassle that way.
Oh and PHP has an XSL parser too, so the XSL stylesheets you write for ajax will parse exactly the same in PHP...oh yes...OH YES...so this means that if someone has JS turned off, with literally no extra leg work you can output the content with php [page refresh required obviously]. So not only do you have an extremely flexible framework, highly maintainable, which looks cool and is faster than doing it any other way. You also cater for people with JS turned off [or incompatible browsers] with no extra cost to you.
So guys...XSL? Do it? DOOO IT
