AJAX Enabled Features and API

Create high-performance and ultra-responsive web applications with
DevExpress ASP.NET Controls and MVC Extensions.

In order to present new and updated data, web components provide one or more of three user-server interaction models – postbacks, callbacks, or client-side scripts. For each user action allowed by the control, component vendors generally give you the freedom to specify the model to use. While this may seem to be beneficial at first glance, this freedom can make it harder to customize a control for optimal usage in your web forms: for example only certain settings might be available for each mode; or another mode may be too slow for a given operation, leaving you to optimize your usage of the control and its performance.

With our ASP.NET controls, you won't have to perform such optimization tasks. All user actions for our controls are handled using callbacks though AJAX, and, as you will soon see, we’ve spent the time to ensure that these callbacks are very fast. This, in turn, guarantees that the interactivity of your site is sharp and nimble, that your site requires fewer scripts to be loaded into the client browser, and that entire web pages aren't reloaded with each user action. Ultimately, our attention to detail makes it very easy to configure and implement the control in all your web projects.

Full Support for ASP.NET AJAX

For optimal callback performance, our ASP.NET components have their own tailored implementation of AJAX in JavaScript. They do not require the standard ASP.NET AJAX UpdatePanel to provide this functionality. The UpdatePanel is only useful if you want to synchronize server-side changes across several components at the same time, and in such an situation, you can simply place all related controls into a single panel and configure them to send postbacks in response to user actions.

You can see this functionality in action in our Update Panel demo. Notice that the only requirement to enable ASPxGridView-UpdatePanel interactivity is to toggle one option, and this will switch browser-server communications from callbacks to postbacks.

Callback State

For even better performance, our components do not use the standard bulky ASP.NET ViewState mechanism. Instead, we have implemented our own smart state caching engine. This engine calculates and stores the differences between the control's initial and current state as a highly-compressed "callback state". This design guarantees that the amount of state information transferred back and forth is much smaller than the traditional ViewState. Reducing the payload in this fashion means that every action (and therefore every callback) is executed much more quickly than with competing ASP.NET grid controls.

Flexible AJAX-Enabled API

Sometimes when writing a web application you find you have to balance between downloading too much data just in case the user might want to see it, or downloading just enough for a first glance and then downloading any additional data based on user actions. The first option can mean your application is slower than it need be, and the second option often requires some considerable server and client-side implementation on your part to make the required AJAX calls and process the responses.

Our ASP.NET controls, including the ASPxGridView, provide a better solution that falls in between these two extremes – the DevExpress AJAX-enabled API.

Our approach is rather simple. Our controls provide client-side functions you call from JavaScript that use AJAX to obtain data. The data from the server is then returned via a callback to a client-side event handler, which you implement to update the required controls on the client side.

The clever bit is that end-users never know if a callback has been used to get data from the server. Callbacks are executed in the background and no part of the web page is reloaded. Since callbacks aren't visually indicated (unless you explicitly configure them to be), to the end-user it looks like the data was already present on the client and no round-trips to the server have been initiated. And since many tasks require very little information to be sent, the end-user assumes that the application is doing all the work directly in the browser. To see this for yourself, feel free to review our Focused Row demo, especially the code.