আমি এই থ্রেডটি জুড়ে একই রকম কিছু সন্ধান করতে এসেছি তবে খুঁজে পেয়েছি $ উত্স আপনার জন্য স্বয়ংক্রিয়ভাবে ক্যাশে পরিচালনা করবে, সুতরাং ক্যাশে সাফ করার জন্য বাধ্য করার দরকার নেই।
ধারণাটি হ'ল যদি আপনার কাছে এমন কোনও সংস্থান থাকে যা আপনি জিজ্ঞাসা করতে পারেন তবে সেই প্রশ্নের জবাব ক্যাশে হবে, তবে আপনি যদি সেই একই উত্সের জন্য কিছু সঞ্চয় করেন তবে পূর্ববর্তী ক্যাশেড ডেটা অবশ্যই অবৈধ হতে হবে, তাই এটি আপনার জন্য সাফ হয়ে গেছে। এটি বোঝায় যে এটি এইভাবে কাজ করবে।
এটি করার জন্য আমি এখানে কিছু কোড ব্যবহার করছি (আপনি সম্ভবত উদ্ভট ফ্যাক্টরি তৈরির অংশটিকে উপেক্ষা করতে পারেন এবং "শ্রেণি" বডিটিতে মনোযোগ দিতে পারেন)।
'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 get (ক্যাশেড নয়) সম্পাদন করবে।
এটি আপনাকে অন্য কারও ($ http) ক্যাশে পরিচালনা করার ব্যবসায়ের হাত থেকে বাঁচিয়ে রাখে এবং অনুরোধের জন্য কোন ইউআরএল ব্যবহার করা হয় এবং যা সঠিক সময়ে ক্যাশে সাফ করছে তা চালিয়ে যাওয়ার চেষ্টা করে।
আমি মনে করি যে গল্পটির নৈতিকতা এখানে লাইব্রেরির সাথে কাজ করা এবং সব কিছু ঠিকঠাক হবে ... কোনও বাগ বা অসম্পূর্ণ বৈশিষ্ট্য ব্যতীত, তবে কৌনিকটি এর কোনওটিই নেই;)
PS এগুলি সমস্ত অ্যাঙ্গুলারজেএস ১.২.০ এ চলছে
cache
-{boolean|Cache}
- যদি সত্য হয় তবে একটি ডিফল্ট default