當前位置:首頁 » 存儲配置 » angularjs存儲

angularjs存儲

發布時間: 2024-02-29 01:35:36

1. 如何解決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擼不出來,所以不要作死了

2. angularjs路由如何禁止緩存

angular默認的模板載入都會被緩存起來,使用的緩存服務是$tempalteCache,發送模板請求的服務是$templateRequest,可以有兩種方案:
1.每次發送$http請求模板完成後,調用$tempalteCache.remove(url)或removeAll清除所有模板緩存;
2.使用$provide.decorator改寫原生的$templateRequest,禁掉緩存,$templateRequest的源碼,可以看到它默認使用$tempalteCache作為緩存,可以去掉它。

熱點內容
編程培訓福州 發布:2024-07-27 12:28:06 瀏覽:876
哈弗h6女生適合哪個配置 發布:2024-07-27 12:10:52 瀏覽:954
memcached啟動腳本 發布:2024-07-27 11:55:41 瀏覽:558
電動車怎麼看配置 發布:2024-07-27 11:55:05 瀏覽:238
mfc打開默認文件夾 發布:2024-07-27 11:41:23 瀏覽:648
電腦找不到伺服器的原因 發布:2024-07-27 11:33:58 瀏覽:864
sql2005操作 發布:2024-07-27 11:33:19 瀏覽:437
安卓什麼app軟體可以代替藍牙 發布:2024-07-27 11:24:50 瀏覽:745
vb編譯運行 發布:2024-07-27 11:14:42 瀏覽:754
恆線速的演算法 發布:2024-07-27 10:45:46 瀏覽:759