Как управлять кешем ampify.request: постоянная опция
При использовании http://amplifyjs.com/api/request/ я хотел бы использовать ampify.store для сохранения результатов каждого вызова. Я знаю, что могу сделать это с помощью этого кода:
amplify.request.define( "ajaxExample2", "ajax", {
url: "/myApiUrl",
dataType: "json",
type: "GET",
cache: "persist"
});
Тем не менее, я хотел бы иметь возможность добавлять результаты этого в другую переменную, хранящуюся в ampify.store, но только если данные поступают с сервера, а не из кэша.
Например, я сделаю начальный звонок amplify.request("ajaxExample2"...
тогда я сохраню результаты в другую переменную через amplify.store
, Затем в следующий раз я позвоню amplify.request("ajaxExample2"...
Если данные поступают с сервера, я хочу перезаписать свою локальную переменную - если нет, я хочу оставить ее в покое.
Итак, я хотел бы узнать, выполняет ли запрос вызов сервера или нет, и вызвать функцию, если это так. Есть ли способ сделать это с помощью усиления?
1 ответ
@swatkins перед вызовом службы вы можете проверить, есть ли в хранилище данные или нет, если данные доступны в хранилище (Cache), тогда нет необходимости вызывать службу, в противном случае вызовите службу.
Например:
var cachedData = amplify.store("anyKey");
if (typeof cachedData === 'undefined' || cachedData.length == 0) {
amplify.request.define("ajaxExample2", "ajax", {
url: "/myApiUrl",
dataType: "json",
type: "GET",
cache: "persist"
});
amplify.request("ajaxExample2",
function( data ) {
cachedData = data.d;
amplify.store("anyKey", data)
});
}