❶ AngularJS如何判斷緩存里是否有用戶來進行登錄或注銷
首先你要有存用戶數據的能力才能判斷數據是否存進去了是吧,js中有一個localStorage的方法用來讓電腦手機中存數據,具體的你自己網路,我下面貼一些我自己用的代碼給你看看吧
這個是local.js文件,需要在app.js中依賴注入Local
用get獲取我在注冊登陸的時候存在本地的賬號密碼
❷ 如何解決AngularJs在IE下取數據總是緩存的問題
如果用AngularJs在IE下發出GET請求從後台服務取完Json數據再綁定到頁面上顯示的話,你可能會發現就算數據更新了,IE還是會顯示原來的結果。實際上這時候IE的確是緩存了hashtag,沒有再次去做Http GET請求最新的數據。
最直接的辦法是在後台擼掉OutputCache,但這種做法並不推薦,需要改每一處被Angular調用的地方,代價太大。這種問題應該在前端解決最好。研究了一會兒總結了最有效的解決方法,並不需要改後台代碼了。
在你的app config里擼一個$httpProvider進去,比如像我這樣,和路由可以配在一起,當然分開配也沒問題。
var config = ["$routeProvider", "$httpProvider", function ($routeProvider, $httpProvider) {
// Initialize get if not there
if (!$httpProvider.defaults.headers.get) {
$httpProvider.defaults.headers.get = {};
}
// Enables Request.IsAjaxRequest() in ASP.NET MVC
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
// Disable IE ajax request caching
$httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
$httpProvider.defaults.headers.get['Pragma'] = 'no-cache';
$routeProvider.when("/", { templateUrl: "Manage/dashboard/index.cshtml" })
.when("/dashboard", { templateUrl: "Manage/dashboard/index.cshtml" })
.when("/dashboard/serverinfo", { templateUrl: "Manage/dashboard/serverinfo.cshtml" })
.when("/dashboard/emaillogs", { templateUrl: "Manage/dashboard/emaillogs.cshtml" })
// other code....
.otherwise({ redirectTo: "/" });
}];
app.config(config);
最關鍵的就是最後的禁用IE對ajax的緩存
$httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
$httpProvider.defaults.headers.get['Pragma'] = 'no-cache';
如果你想這樣寫,是會爆的:
$httpProvider.defaults.headers.get['If-Modified-Since'] = '0';
這樣會導致include指令載入的partial view擼不出來,所以不要作死了
❸ angularjs的緩存利用什麼實現的
以通過在Provider中返回一個構造函數,並在構造函數中設計一個緩存欄位,在末尾將引出這種做法。
首先自定義一個directive,用來點擊按鈕改變一個scope變數值。
angular
.mole('app',[])
.directive('updater', function(){
reutrn {
scope: {
user: '='
},
template: '<button>Change User.data to whaaaat?</button>',
link: function(scope, element, attrs){
element.on('click', function(){
scope.user.data = 'whaaaat?';
scope.$apply();
})
}
}
❹ vue,angular,avalon這三種MVVM框架之間有什麼優缺點
使用Object.defineProperties、 VBScript、 Object.observe,純事件驅動,兼容IE6,DOM的兼容性處理可與jQuery媲美,體積少 早期的四大MVVM框架,都有大公司引銜: angularjs google出品,思想來自flex,IoC, 臟檢測,自定義標簽,受限於綁定數
❺ angularjs路由如何禁止緩存
angular默認的模板載入都會被緩存起來,使用的緩存服務是$tempalteCache,發送模板請求的服務是$templateRequest,可以有兩種方案:
1.每次發送$http請求模板完成後,調用$tempalteCache.remove(url)或removeAll清除所有模板緩存;
2.使用$provide.decorator改寫原生的$templateRequest,禁掉緩存,$templateRequest的源碼,可以看到它默認使用$tempalteCache作為緩存,可以去掉它。