phonegap アプリ ストレージのキャッシュを探していたところ、@TecHunter の答えが見つかりましたlocalCache
。
私は、localStorage が ajax 呼び出しによって返されたデータをキャッシュする別の代替手段であることを知りました。そのため、キャッシュの代わりにlocalStorage
使用したい他の人に役立つデモを 1 つ作成しました。localStorage
localCache
Ajax 呼び出し:
$.ajax({
type: "POST",
dataType: 'json',
contentType: "application/json; charset=utf-8",
url: url,
data: '{"Id":"' + Id + '"}',
cache: true, //It must "true" if you want to cache else "false"
//async: false,
success: function (data) {
var resData = JSON.parse(data);
var Info = resData.Info;
if (Info) {
customerName = Info.FirstName;
}
},
error: function (xhr, textStatus, error) {
alert("Error Happened!");
}
});
データを localStorage に保存するには:
$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
if (options.cache) {
var success = originalOptions.success || $.noop,
url = originalOptions.url;
options.cache = false; //remove jQuery cache as we have our own localStorage
options.beforeSend = function () {
if (localStorage.getItem(url)) {
success(localStorage.getItem(url));
return false;
}
return true;
};
options.success = function (data, textStatus) {
var responseData = JSON.stringify(data.responseJSON);
localStorage.setItem(url, responseData);
if ($.isFunction(success)) success(responseJSON); //call back to original ajax call
};
}
});
localStorage を削除する場合は、必要な場所で次のステートメントを使用します。
localStorage.removeItem("Info");
それが他の人に役立つことを願っています!