LocalForage là gì
LocalForage là một thư viện Javascript giúp cải thiện các trải nghiệm offline, nó thực chất là Web Storage API( localStorage và sessionStorage) được mở rộng với value hỗ trợ nhiều kiểu dữ liệu hơn, bao gồm: Array, ArrayBuffer, Blob, Float32Array, Float64Array, Int8Array, Int16Array, Int32Array, Number, Object, Uint8Array, Uint8ClampedArray, Uint16Array, Uint32Array, String
Cơ chế hoạt động cơ bản
Cài đặt:
# Install via npm:
npm install localforage
# Or, with yarn:
yarn add localforage
<script src="localforage.js"></script>
<script>console.log('localforage is: ', localforage);</script>
To use localForage, download the latest release or install with npm (npm install localforage) or yarn (yarn add localforage).
Sử dụng:
GETITEM: getItem(key, successCallback)
localforage.getItem('somekey').then(function(value) {
// This code runs once the value has been loaded
// from the offline store.
console.log(value);
}).catch(function(err) {
// This code runs if there were any errors
console.log(err);
});
// Callback version:
localforage.getItem('somekey', function(err, value) {
// Run this code once the value has been
// loaded from the offline store.
console.log(value);
});
Or, use `async`/`await`:
```js
try {
const value = await localforage.getItem('somekey');
// This code runs once the value has been loaded
// from the offline store.
console.log(value);
} catch (err) {
// This code runs if there were any errors.
console.log(err);
}
SETITEM : setItem(key, value, successCallback)
localforage.setItem('somekey', 'some value').then(function (value) {
// Do other things once the value has been saved.
console.log(value);
}).catch(function(err) {
// This code runs if there were any errors
console.log(err);
});
// Unlike localStorage, you can store non-strings.
localforage.setItem('my array', [1, 2, 'three']).then(function(value) {
// This will output `1`.
console.log(value[0]);
}).catch(function(err) {
// This code runs if there were any errors
console.log(err);
});
// You can even store binary data from an AJAX request.
req = new XMLHttpRequest();
req.open('GET', '/photo.jpg', true);
req.responseType = 'arraybuffer';
req.addEventListener('readystatechange', function() {
if (req.readyState === 4) { // readyState DONE
localforage.setItem('photo', req.response).then(function(image) {
// This will be a valid blob URI for an <img> tag.
var blob = new Blob([image]);
var imageURI = window.URL.createObjectURL(blob);
}).catch(function(err) {
// This code runs if there were any errors
console.log(err);
});
}
});
REMOVEITEM: removeItem(key, successCallback)
localforage.removeItem('somekey').then(function() {
// Run this code once the key has been removed.
console.log('Key is cleared!');
}).catch(function(err) {
// This code runs if there were any errors
console.log(err);
});
Ứng dụng LocalForage
- Lưu trữ các giá trị khi truy vấn từ db mà không cần phải gọi lại nhiều lần
Vd: lưu các giá trị phân trang mà không phải gọi lại db nhiều lần, lưu các kết quả truy vấn lọc (tìm kiếm bất động sản: tỉnh thành, dự án, diện tích… )