Question: I'm working on a Intranet application that manipulates data from a SQL server. The application has to support multiple users playing with the same data source / same tables. The application uses a [jQuery datatable library](http://datatables.net/) fed by a Ajax call to a JSON result action in my MVC Controller and some Ajax links rendered in the table allowing CRUD operations in a form of a modal popup window. When the popup submits the CRUD operation, it closes and calls a refresh on the datatable.

Everything is working wonderfully, however, I want that datatable to update if data is changed by another user (or another browser/tab) without having the refresh the table.

One method would be to poll a Hash from the server every X milliseconds and update if the hash changes, but I dont really like that option as I feel it could get out of hands pretty quickly with the amount of tables to manage.

I would like to know what you guys think of the polling method and if you have an alternative that would be more fluid, cleaner or simply a better practice for X reasons.

Thanks a lot!

Answer: 
> 
> I would like to know what you guys think of the polling method and if
>  you have an alternative that would be more fluid, cleaner or simply a
>  better practice for X reasons.
> 
> 
> 

The alternative to polling is pushing which is far more efficient. Checkout [`SignalR`](https://github.com/SignalR/SignalR/). And here's an [introductory blog post](http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx).
Have you considered using <http://socket.io/> to create a websocket? 

This will allows the server to push data to the relevant clients whenever your table updates and will also allow users to push their changes to your server without refreshing (just like ajax).

Socket.io also has a great fall back mechanism so it's supported on all major browsers (yes even IE6). <http://socket.io/#browser-support>