मैं इस थ्रो में आया ईद कुछ इसी तरह की तलाश में है, लेकिन पाया कि $ संसाधन स्वचालित रूप से आपके लिए कैश का प्रबंधन करेगा, इसलिए कैश को साफ़ करने की आवश्यकता नहीं है।
विचार यह है कि यदि आपके पास कोई संसाधन है जो आप पूछ सकते हैं, तो क्वेरी प्रतिक्रिया कैश की जाएगी, लेकिन यदि आप उसी संसाधन के लिए कुछ सहेजते हैं, तो पहले कैश किए गए डेटा को अमान्य होना चाहिए, इसलिए यह आपके लिए साफ़ हो गया है। यह समझ में आता है कि यह इस तरह से काम करेगा।
यहां कुछ कोड है जो मैं ऐसा करने के लिए उपयोग करता हूं (आप संभावित रूप से विषम दिखने वाले फैक्ट्री निर्माण भाग को अनदेखा कर सकते हैं और "कक्षा" निकाय पर ध्यान दे सकते हैं)।
'use strict';
sampleApp.players.$ng.factory('sampleApp.players.PlayerService', [
'$log',
'$resource',
sampleApp.players.PlayerService = function ($log, $resource) {
var service = {};
$log.info('Creating player resource.');
var Player = $resource('/api/players', {}, {query: {
isArray: true,
cache: true,
method: 'GET'
}});
service.addPlayer = function(playerName) {
$log.info('Saving a new player.');
return new Player({name: playerName}).$save();
};
service.listPlayers = function() {
$log.info('Fetching players.');
return Player.query();
};
return service;
}]);
यदि आप सूची प्लेयर्स को कई बार कॉल करते हैं, तो पहली कॉल http प्राप्त करने का अनुरोध करती है और सभी बाद की कॉल कैश की जाती हैं। यदि आप ऐडप्लेयर को कॉल करते हैं, तो एक http पोस्ट अपेक्षित के रूप में किया जाता है, और फिर सूची के लिए अगली कॉल प्लेयर्स http प्राप्त (कैश नहीं) करेगा।
यह आपको किसी और के ($ http) कैश के प्रबंधन के व्यवसाय से बाहर रखता है और अनुरोधों के लिए यूआरएल का उपयोग करने के लिए उपयोग कर रहा है और सही समय पर कैश साफ़ कर रहा है।
मुझे लगता है कहानी यहाँ का नैतिक पुस्तकालय के साथ काम करने के लिए और सब कुछ ठीक हो जाएगा ... किसी भी कीड़े या अधूरी सुविधाओं के अलावा है, लेकिन कोणीय उन से कोई भी नहीं है;)
पी.एस. यह सब AngularJS 1.2.0 पर चल रहा है।
मैं अस्थिर उपयोग कर रहा हूं (1.1.5 लेकिन मुझे लगता है कि यह 1.1.2 के बाद से है) ** 'कैश' ** -' {बूलियन | कैश} '- यदि सही है, तो एक डिफ़ॉल्ट $ http कैश का उपयोग किया जाएगा जीईटी अनुरोध को कैश करने के लिए, अन्यथा यदि –
के साथ बनाया गया कैश उदाहरण मुझे समान समस्या है लेकिन केवल परीक्षण करते समय। मैं इस बात को ब्राउज़र स्तर पर कैसे रोकूं? – chovy