我用breeze開發一個應用程序。我需要這樣我結束了第一方案來檢索本地緩存中使用id = 123的實體:'EntityQuery.fromEntityKey'後按F5似乎用微風清除本地緩存
return manager.fetchEntityByKey("Transport", 123, true) // 3rd param is true --> local cache
.then(fetchSucceeded)
.fail(queryFailed);
function fetchSucceeded(data) {
var s = data.entity;
return s.isPartial() ? refreshTransport(s) : transportObservable(s);
}
接下來,我需要擴大一些屬性,所以我結束了第二個場景:
var entityType = manager.metadataStore.getEntityType("Transport");
var entityKey = new EntityKey(entityType, 123);
var query = EntityQuery.fromEntityKey(entityKey)
.expand("Sender.City, Sender.City.Country")
.using(breeze.FetchStrategy.FromLocalCache);
return manager.executeQuery(query)
.then(fetchSucceeded)
.fail(queryFailed);
function fetchSucceeded(data) {
var s = data.results[0];
return s.isPartial() ? refreshTransport(s) : transportObservable(s);
}
我對2個場景執行了一些測試,並且在刷新瀏覽器(F5)時發現了不同之處。
第一種情況:按F5時:查詢能夠檢索本地緩存中的數據。所以用戶可以多次按F5鍵,微風仍然會使用本地緩存。
第二種情況:按F5時:查詢在本地緩存中找不到任何內容,則在fetchSucceed
中發生錯誤s.isPartial()
,因爲s在undefined
中。
我的問題:爲什麼在第二個場景刷新瀏覽器似乎清除了本地緩存的微風?如何着手避免這種行爲?
謝謝。
現在對我來說很清楚。謝謝。 – Bronzato 2013-04-04 09:26:45