アングラルJsテンプレートキャッシュを禁止する方法
アングラーJsがテンプレートキャッシュを禁止する方法を紹介します。皆さんに共有し、自分にもメモを残します。
AnglarJsの特性(orブラウザ自体のキャッシュ?)のため、angglarデフォルトのHTMLテンプレートの読み込みはキャッシュされます。テンプレートを修正するたびに、ブラウザのキャッシュをクリアして最新のhtmlテンプレートを取得する必要があります。自分でテストするのは大丈夫ですが、サーバーのテンプレートの内容を更新したら、ユーザーはあなたに協力してブラウザのキャッシュをクリアすることはできません。だからこれは大きな問題です。
方法2:キャッシュをクリアするためにtemplateCacheを使用します。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
AnglarJsの特性(orブラウザ自体のキャッシュ?)のため、angglarデフォルトのHTMLテンプレートの読み込みはキャッシュされます。テンプレートを修正するたびに、ブラウザのキャッシュをクリアして最新のhtmlテンプレートを取得する必要があります。自分でテストするのは大丈夫ですが、サーバーのテンプレートの内容を更新したら、ユーザーはあなたに協力してブラウザのキャッシュをクリアすることはできません。だからこれは大きな問題です。
app.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/Book/:bookId/ch/', {
templateUrl: 'chapter.html',
controller: 'ChapterController'
});
});
方法1:テンプレートファイルのパスの後にタイムスタンプ(orその他の乱数)を入れて、AnglarJsを強制的に毎回サーバーから新しいテンプレートをロードします。
app.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/Book/:bookId/ch/', {
templateUrl: 'chapter.html' + '?datestamp=' + (new Date()).getTime(),
controller: 'ChapterController'
});
});
でも、この方法はあまりにもみっともないです。。。。方法2:キャッシュをクリアするためにtemplateCacheを使用します。
//
app.run(function($rootScope, $templateCache) {
$rootScope.$on('$routeChangeStart', function(event, next, current) {
if (typeof(current) !== 'undefined'){
$templateCache.remove(current.templateUrl);
}
});
});
ルーティングアドレスを設定した後、つまり、ap.co.figの後にこのコードを追加すると、AnglarJsがtemplateUrlをキャッシュすることが禁止されます。以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。