具有来自外部缓存数据的 Falcor 模型 Api
Falcor Model with Cache data from External Api
如何将从外部 Api 发送过来的 json 数据缓存到 Falcor 模型中?此外,如果缓存中不存在数据,如何在模型中指定再次命中外部 Api?
我的疑问在其中一个帖子中得到了部分解答:
How does Falcor cache data in the server side?
所以现在我明白了 Falcor-Model 缓存只在客户端工作,这很好。但是,如果数据不在缓存中,模型将如何工作?
var model = new falcor.Model({source: new falcor.HttpDataSource('http://localhost/rating.json') });
model.
get("rating").
then(function(response) {
document.getElementById('filmRating').innerText = JSON.stringify(response.json.rating,null, 4);
});
这里的response是一个json对象,可以放入Falcor-Model缓存,全局存储在客户端。但是,如果数据不在缓存中,如何再次触发模型?
使用 Falcor 的主要优点是您不必关心数据是存在于缓存中还是从服务器获取,因为 model.get()
从服务器获取缓存中丢失的所有数据发出 HTTP 请求。
因此,第一个 model.get(path)
查询将从服务器获取,并将响应放入缓存中。如果您再次调用 model.get(path)
,它将从缓存中提供。
如何将从外部 Api 发送过来的 json 数据缓存到 Falcor 模型中?此外,如果缓存中不存在数据,如何在模型中指定再次命中外部 Api?
我的疑问在其中一个帖子中得到了部分解答: How does Falcor cache data in the server side?
所以现在我明白了 Falcor-Model 缓存只在客户端工作,这很好。但是,如果数据不在缓存中,模型将如何工作?
var model = new falcor.Model({source: new falcor.HttpDataSource('http://localhost/rating.json') });
model.
get("rating").
then(function(response) {
document.getElementById('filmRating').innerText = JSON.stringify(response.json.rating,null, 4);
});
这里的response是一个json对象,可以放入Falcor-Model缓存,全局存储在客户端。但是,如果数据不在缓存中,如何再次触发模型?
使用 Falcor 的主要优点是您不必关心数据是存在于缓存中还是从服务器获取,因为 model.get()
从服务器获取缓存中丢失的所有数据发出 HTTP 请求。
因此,第一个 model.get(path)
查询将从服务器获取,并将响应放入缓存中。如果您再次调用 model.get(path)
,它将从缓存中提供。