避免Sails.js + AngularJS中的太多请求(缓存HTTP请求)
问题描述:
我使用Sails.js作为我的项目的基础,到目前为止我试图使用AngularJS模块化每个UI元素。避免Sails.js + AngularJS中的太多请求(缓存HTTP请求)
尽管我认为这种方法很好,因为它允许我尽可能重用我的代码,但最终我将不得不向服务器发出很多HTTP请求,因为每个模块都不会与其他人共享数据。
那么,如何减少请求数量并在所有控制器之间共享数据呢?
我已经想到了2级不同的解决方案:
- 填充从后端视图减少AngularJS控制器正在请求的数据量。
- 使用套接字动态请求数据并缓存常用查询。
答
我发现您可以使用$cacheFactory
(文档here)在AngularJS中缓存HTTP请求。
一个简单的方法来做到这一点是下列之一:
$http({
url : '/your/path',
method : 'POST',
cache : true
})
.success(function (data) {
data;
})
更多信息可以在coderwall和this StackOverflow question找到。
答
angular service通常用于在控制器之间共享数据。这是一个简单的例子,可能看起来像什么。注意它只会提出一个请求,第一次获取数据,之后它将使用存储的值。
app.factory('dataService', function() {
var service = {};
var data;
service.getData = function() {
if (!data) {
//populate data via http get or whatever
}
return data;
}
return service;
});
该服务可以被注入任何控制器。
您是否想过在角度服务中缓存数据? – aw04 2014-10-06 17:11:35
我真的不知道!我会寻找更多关于它的信息。谢谢! – siannone 2014-10-06 17:53:34