AJAX Page - Why Use It

AJAX Page provides a way for server side functions to be called directly from client side code intuitivelly using the same name and parameters (seamless integration). Check this tutorial.
Using AJAX Page, the user can init a callback to a server side function that will in turn call a WebService and return the value. No proxy class is needed.
You can call for a panel update on client side by using either a button, a link or anything else.
AJAX Page can do synchronous or asynchronous callback from client to server.
Using AJAX Page, it is very intuitive and easy to run JavaScript code at client after a callback.
AJAX Page allows the user to send only the data that is needed on a panel update.
AJAX Page allows the user to initiate callbacks to own server functions.
Controls in Callback Panel require no extra code to render.
Check these live examples with Literal update and Grid update.
AJAX Page can use collections as parameters on callbacks.
AJAX Page use Unicode characters when doing callbacks.
Sending arguments using AJAX Page control requires the user to make no specific casts.
    public void AjaxRequest(int age)
        // code to handle the AJAX request
        // no extra code needed. age is already an integer.
Arguments are sent separatelly, no extra code needed.
    public void AjaxRequest(string name, int age)
        // code to handle the AJAX request
        // arguments are sent separatelly, no extra code needed
AJAX Page allows user to take advantage of "exception driven development", a very useful technique of flow control management.
Users do not need to declare a different handler for each callback made and server side exceptions can be thrown at client to allow decisions in flow control.
    catch (ex)
        // an error occured
        // handle it depending on type
        switch (ex.type)
            // if database error
            case "" : ...
AJAX Page has an easy way to call client side code from server side.
Can be used anywhere in any server side method called using AJAX.
    ExecOnLoad("alert('Hello World!');");                
AJAX Page can set values to controls outside of the Callback Panel (SetValue) without any code changes.