$ Http Angular memiliki cache bawaan . Menurut dokumen:
cache - {boolean | Object} - Nilai boolean atau objek yang dibuat dengan $ cacheFactory untuk mengaktifkan atau menonaktifkan caching dari respons HTTP. Lihat
$ http Caching untuk informasi lebih lanjut .
Nilai Boolean
Sehingga Anda dapat mengatur cache
untuk benar dalam pilihan nya:
$http.get(url, { cache: true}).success(...);
atau, jika Anda lebih suka jenis panggilan konfigurasi:
$http({ cache: true, url: url, method: 'GET'}).success(...);
Objek Cache
Anda juga dapat menggunakan pabrik cache:
var cache = $cacheFactory('myCache');
$http.get(url, { cache: cache })
Anda dapat menerapkannya sendiri menggunakan $ cacheFactory (terutama dengan mudah saat menggunakan $ resource):
var cache = $cacheFactory('myCache');
var data = cache.get(someKey);
if (!data) {
$http.get(url).success(function(result) {
data = result;
cache.put(someKey, data);
});
}
Saya pikir ada cara yang lebih mudah sekarang. Ini memungkinkan caching dasar untuk semua permintaan $ http (yang diwarisi $ resource):
sumber
Cara yang lebih mudah untuk melakukan ini dalam versi stabil saat ini (1.0.6) membutuhkan kode jauh lebih sedikit.
Setelah mengatur modul Anda tambahkan pabrik:
Sekarang Anda bisa meneruskan ini ke controller Anda:
Salah satu kelemahannya adalah bahwa nama-nama kunci juga diatur secara otomatis, yang dapat membuatnya sulit. Semoga mereka akan menambahkan cara untuk mendapatkan nama kunci.
sumber
Periksa cache cache sudut jika Anda suka caching bawaan $ http tetapi ingin lebih banyak kontrol. Anda dapat menggunakannya untuk menambah cache $ http secara mulus dengan pembersihan time-to-live, berkala, dan opsi mempertahankan cache ke localStorage sehingga tersedia di seluruh sesi.
FWIW, ia juga menyediakan alat dan pola untuk membuat cache Anda menjadi semacam penyimpanan data yang lebih dinamis yang dapat Anda berinteraksi dengan POJO, bukan hanya string JSON default. Belum dapat mengomentari utilitas opsi itu.
(Kemudian, di atas semua itu, data angular library terkait adalah semacam pengganti $ resource dan / atau Restangular, dan bergantung pada cache-angular.)
sumber
angular-data
sudah usang sekarang. Yang terakhir adalahjs-data-angular
js-data.io/v1.8.0/docs/js-data-angularKarena pabrik AngularJS adalah lajang , Anda cukup menyimpan hasil permintaan http dan mengambilnya saat layanan Anda disuntikkan ke dalam sesuatu.
sumber
setel cache menjadi true.
sumber
Di Angular 8 kita bisa melakukan ini:
Anda bisa menyebutnya seperti ini:
Kode di atas akan men-cache hasil API jarak jauh saat panggilan pertama sehingga dapat digunakan pada permintaan lebih lanjut untuk metode itu.
sumber