4
是否可以使用Parse(parse.com)Javascript SDK緩存查詢?使用Parse Javascript SDK緩存查詢
我發現的唯一參考是https://parse.com/questions/javascript-sdk-caching,它表示目前不支持。
由於上次鏈接的最後一個響應是從4個月前開始的,我想知道它是否現在受支持或者是否有解決方法來緩存此查詢。
是否可以使用Parse(parse.com)Javascript SDK緩存查詢?使用Parse 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()
注意,這可以積累聯合國需要緩存條目隨着時間的推移,所以你可能想用一個WeakMap重構(如果你可以用瀏覽器活支持池),自己維護緩存,或者讓它隨時構建和重新加載。另一個考慮是它期望每次都將相同的查詢對象傳遞給q()。您可以嘗試使用JSON.stringify(cls)作爲鍵,但結果不能保證。儘管如此,由於它只是緩存功能,因JSON密鑰重新排序而導致的緩存未命中不會破壞任何內容......
問題是我無法使用服務器信息來緩存(即元素/集合更改?) –
請您詳細說明如何使用限制,近似,跳過等限制使用此方法? –
@IvanWang:如果我理解了這個願望,我認爲你並不需要修改任何東西來支持約束,你只需要記住成功處理程序並在包裝程序中回憶。 – dandavis