jbox-web / ajax-datatables-rails

A wrapper around DataTable's ajax methods that allow synchronization with server-side pagination in a Rails app
MIT License
584 stars 228 forks source link

Fix server-side out of order ajax responses #418

Closed dmorehouse closed 1 year ago

dmorehouse commented 1 year ago

With server-side rendering if multiple concurrent ajax requests return out of order, a previous ajax response could end up overwriting (on the client side) a later response. Ajax datatables has a builtin solution for this. It passes a draw parameter which serves as a version (it's just a counter). If an ajax response is from a version prior to what is currently being displayed, then the result is ignored. The draw parameter is expected to be returned (casted as an integer to prevent XSS attacks) as specified by Ajax datatables here - https://datatables.net/manual/server-side#Returned-data

This PR will offer an immediate fix for out of order response rendering for all default configurations of ajax-datatables-rails.

n-rodriguez commented 1 year ago

Thank you!