Say first 300 records are loaded. 150 - 200 when requested should not be loaded but retrieved from cache. Likewise if 400-500 records are loaded already, and 350-450 records are requested, only the 50 records from 350-400 should be loaded.
I have found other solutions, but there upon change of pagination size, the whole thing reloads. This should not happen. Say, 100 is the pagination size, and 100-200 are loaded, when pagination size is changed to 50, and 150-200 is requested, this should not reload.