Tom*_*ero 4 javascript caching parse-platform
是否可以使用Parse(parse.com)Javascript SDK缓存查询?
我发现的唯一参考是https://parse.com/questions/javascript-sdk-caching,它说它目前不支持.
由于上次链接的最后一次响应是从4个月前开始,我想知道现在是否支持它,或者是否有解决方法来缓存此查询.
通过一些小小的工作,你可以使用包装器方法自己缓存它(或任何东西).
例如,我修改了https://parse.com/docs/js/symbols/Parse.Query.html来缓存:
var cacheKeys = [],
cacheVals = [];
function q(cls, ok, fail) { // query wrapper that implements caching
// store or fetch from cache if available:
var slot = cacheKeys.indexOf(cls);
if (slot !== -1) {
return ok(cacheVals[slot]);
} else {
slot=cacheKeys.length;
cacheKeys.push(cls);
}
//normal query code:
var query = new Parse.Query(cls);
query.find({
success: function(results) {
cacheVals[slot] = results; //cache results
ok(results); // call traditionally
},
error: fail || console.error.bind(console)
});
} // end q()
Run Code Online (Sandbox Code Playgroud)
请注意,这可能会随着时间的推移积累不需要的缓存条目,因此您可能希望使用WeakMap进行重构(如果您可以使用浏览器支持池),自己维护缓存,或者只是让它不时地构建和重新加载.另一个考虑因素是它希望每次都将EXACT相同的查询对象传递给q().您可以尝试使用JSON.stringify(cls)作为键,但不保证结果.尽管如此,由于它只是一个缓存功能,由于JSON密钥重新排序而导致的缓存缺失不会破坏任何内容......
归档时间: |
|
查看次数: |
1277 次 |
最近记录: |