Note that there are some explanatory texts on larger screens.

plurals
  1. POEnabling caching for GWT RPC asynchronous calls
    primarykey
    data
    text
    <p>I'm thinking of introducing some kind of caching mechanism (like HTML5 local storage) to avoid frequent RPC calls whenever possible. I would like to get feedback on how caching can be introduced in the below piece of code without changing much of the architecture (like using gwt-dispatch).</p> <pre class="lang-java prettyprint-override"><code>void getData() { /* Loading indicator code skipped */ /* Below is a gwt-maven plugin generated singleton for SomeServiceAsync */ SomeServiceAsync.Util.getInstance().getDataBySearchCriteria(searchCriteria, new AsyncCallback&lt;List&lt;MyData&gt;&gt;() { public void onFailure(Throwable caught) { /* Loading indicator code skipped */ Window.alert("Problem : " + caught.getMessage()); } public void onSuccess(List&lt;MyData&gt; dataList) { /* Loading indicator code skipped */ } }); } </code></pre> <p>One way I can think of to deal with this is to have a custom MyAsyncCallback class defining onSuccess/onFailure methods and then do something like this -</p> <pre class="lang-java prettyprint-override"><code>void getData() { AsyncCallback&lt;List&lt;MyData&gt;&gt; callback = new MyAsyncCallback&lt;List&lt;MyData&gt;&gt;; // Check if data is present in cache if(cacheIsPresent) callback.onSuccess(dataRetrievedFromCache); else // Call RPC and same as above and of course, update cache wherever appropriate } </code></pre> <p>Apart from this, I had one more question. What is the maximum size of storage available for LocalStorage for popular browsers and how do the browsers manage the LocalStorage for different applications / URLs? Any pointers will be appreciated. </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload