Tag: 本地存储

使用HTML5 localStorage在GWT app / widget中缓存

我正在尝试为我的一个GWT小部件合并一个数据缓存。 我有一个数据源接口/类,它通过RequestBuilder和JSON从我的后端检索一些数据。 因为我多次显示窗口小部件,所以我只想检索一次数据。 所以我尝试使用app缓存。 天真的方法是在单个对象中使用HashMap来存储数据。 但是,如果支持,我还想使用HTML5的localStorage / sessionStorage。 HTML5 localStorage仅支持String值。 所以我必须将我的对象转换为JSON并存储为字符串。 但不知何故,我无法想出一个干净利落的方法。 这是我到目前为止所拥有的。 我定义了一个具有两个函数的接口: fetchStatsList()获取可以在窗口小部件中显示的统计信息列表, fetchStatsData()获取实际数据。 public interface DataSource { public void fetchStatsData(Stat stat,FetchStatsDataCallback callback); public void fetchStatsList(FetchStatsListCallback callback); } Stat类是一个简单的Javascript Overlay类( JavaScriptObject ),带有一些getter(getName()等)我有一个普通的不可RequestBuilderDataSource的我的DataSource的RequestBuilderDataSource ,如下所示: public class RequestBuilderDataSource implements DataSource { @Override public void fetchStatsList(final FetchStatsListCallback callback) { // create RequestBuilderRequest, retrieve response and parse […]

解析:如何从本地数据存储中获取Relation(… fromLocalDatastore())?

我正在开发一个应用程序作为学习,我使用Parse(parse.com)作为数据源。 我正在解析我的类的所有对象并保存到具有Parse的本地商店。 以下执行下载之一的代码段: public void noticia_getOrUpdate(boolean isUpdate) throws ParseException { ParseQuery query = new ParseQuery(Noticia.class); query.orderByDescending(“createdAt”); List lNoticias = null; try { if (isUpdate) { lNoticias = query.whereGreaterThan(“updatedAt”, this.sPref.ultimaAtualizacao_noticia()).find(); if (!lNoticias.isEmpty()) ParseObject.pinAllInBackground(lNoticias); } else { query.whereEqualTo(“ativo”, true); lNoticias = query.find(); for (Noticia noticia : lNoticias) { if (noticia.getUpdatedAt().getTime() > this.sPref.ultimaAtualizacao_noticia().getTime()) this.sPref.atualiza_noticia(noticia.getUpdatedAt()); } ParseObject.pinAllInBackground(lNoticias); this.sPref.atualiza_isUpdate(true); } […]