首頁  >  文章  >  web前端  >  AngularJs 禁止模板快取的方法

AngularJs 禁止模板快取的方法

小云云
小云云原創
2017-12-07 15:52:531158瀏覽

因為AngularJs的特性(or 瀏覽器本身的快取?),angular預設的HTML模板載入都會被快取起來。導致每次修改完模板之後都得經常需要清除瀏覽器的快取來保證瀏覽器去獲得最新的html模板,自己測試還好,但如果更新了伺服器的模板內容,用戶可不會每個都配合你去清除瀏覽器的快取。故這還真是個大問題。本文我們主要介紹AngularJs 禁止模板快取的方法。


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


方法一:在模板檔案路徑後加上時間戳記(or 其他隨機數),強制AngularJs每次從伺服器加載新的模板


app.config(function($routeProvider, $locationProvider) { 
 $routeProvider 
  .when('/Book/:bookId/ch/', { 
  templateUrl: 'chapter.html' + '?datestamp=' + (new Date()).getTime(), 
  controller: 'ChapterController' 
 }); 
});


#不過這種方法太不美觀了。 。 。 。

方法二:使用$templateCache清除快取


// 禁止模板缓存 
app.run(function($rootScope, $templateCache) { 
  $rootScope.$on('$routeChangeStart', function(event, next, current) { 
    if (typeof(current) !== 'undefined'){ 
      $templateCache.remove(current.templateUrl); 
    } 
  }); 
});


在設定路由位址後,即在app.config之後加入這段程式碼,可禁止AngularJs將templateUrl快取起來。

相關推薦:

angularJs清除瀏覽器快取的方法

關於AngularJS中下拉方塊的高級用法詳細介紹

AngularJS入門常見知識總結

#

以上是AngularJs 禁止模板快取的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn