When executing PATCH requests offline, JET Offline Persistence Toolkit will record that request and synch it to the backend, once online. But it will not update data stored in cache, this is by design. Since cached data will not be updated, search queries against offline cache would not bring results based on latest changes. To solve this we need to implement cache update ourself by providing handle patch method.
Handle patch is configured through requestHandlerOverride property while registering persistence manager:
Sample implementation for handle patch. This method is invoked, when PATCH is executed while offline only. We must read information from request and pass it to cache store. Search for entry in cache based on key, updating record and updating info back to the store:
Let's do offline test - switch browser tab to be offline (you can do it Chrome browser developer tools). Do search and check log from JET Offline Persistence Toolkit - it executes search automatically against cache store:
Update same record, while offline - PATCH request will be recorded for later synchronisation. Our handle patch method will be invoked to write changes to cache store:
You will notice in the log, actions executed from handle patch method. It finds record by key in cache and updates it:
Search by updated value - updated value is found and returned from cache store:
Code is available in GitHub repository.
Handle patch is configured through requestHandlerOverride property while registering persistence manager:
Sample implementation for handle patch. This method is invoked, when PATCH is executed while offline only. We must read information from request and pass it to cache store. Search for entry in cache based on key, updating record and updating info back to the store:
Let's do offline test - switch browser tab to be offline (you can do it Chrome browser developer tools). Do search and check log from JET Offline Persistence Toolkit - it executes search automatically against cache store:
Update same record, while offline - PATCH request will be recorded for later synchronisation. Our handle patch method will be invoked to write changes to cache store:
You will notice in the log, actions executed from handle patch method. It finds record by key in cache and updates it:
Search by updated value - updated value is found and returned from cache store:
Code is available in GitHub repository.
No comments:
Post a Comment