>  기사  >  웹 프론트엔드  >  AngularJs에서 템플릿 캐싱을 비활성화하는 방법

AngularJs에서 템플릿 캐싱을 비활성화하는 방법

小云云
小云云원래의
2017-12-07 15:52:531164검색

AngularJ의 특성(또는 브라우저 자체의 캐시?)으로 인해 Angular의 기본 HTML 템플릿 로딩이 캐시됩니다. 결과적으로 템플릿을 수정할 때마다 브라우저가 최신 HTML 템플릿을 얻을 수 있도록 브라우저의 캐시를 지워야 하는 경우가 많습니다. 직접 테스트하는 것은 좋지만 서버의 템플릿 콘텐츠가 업데이트되면 사용자는 이를 수행하지 못합니다. 모두 협조해주세요. 브라우저 캐시를 삭제하세요. 그래서 이것은 정말 큰 문제입니다. 이번 글에서는 주로 AngularJs에서 템플릿 캐싱을 비활성화하는 방법을 소개합니다.


app.config(function($routeProvider, $locationProvider) { 
 $routeProvider 
  .when('/Book/:bookId/ch/', { 
  templateUrl: 'chapter.html', 
  controller: 'ChapterController' 
 }); 
});


방법 1: 템플릿 파일 경로 뒤에 타임스탬프(또는 다른 임의의 숫자)를 추가하여 AngularJ가 매번 서버에서 새 템플릿을 로드하도록 합니다


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); 
    } 
  }); 
});


라우팅 주소를 구성한 후 app.config 뒤에 이 코드를 추가하여 AngularJ가 templateUrl을 캐싱하는 것을 방지하세요.

관련 권장 사항:

AngularJS에서 브라우저 캐시를 지우는 방법

AngularJS에서 드롭다운 상자의 고급 사용법에 대한 자세한 소개

AngularJS를 시작하기 위한 상식 요약

위 내용은 AngularJs에서 템플릿 캐싱을 비활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.