【问题标题】:Avoid too many requests in Sails.js + AngularJS (caching HTTP requests)避免 Sails.js + AngularJS 中的请求过多(缓存 HTTP 请求)
【发布时间】:2014-12-01 00:05:03
【问题描述】:

我使用 Sails.js 作为我的项目的基础,到目前为止,我正在尝试使用 AngularJS 模块化每个 UI 元素。

虽然我认为这种方法很好,因为它允许我尽可能多地重用我的代码,但最终我将不得不向服务器发出许多 HTTP 请求,因为每个模块不与其他模块共享数据。

那么,减少请求数量并在所有控制器之间共享数据的解决方案是什么?

我想到了两种不同的解决方案:

  • 从后端填充视图,减少 AngularJS 控制器请求的数据量。
  • 使用套接字动态请求数据并缓存常用查询。

【问题讨论】:

  • 您是否想过在 Angular 服务中缓存数据?
  • 我真的不知道!我会寻找有关它的更多信息。谢谢!

标签: angularjs module httprequest sails.js


【解决方案1】:

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

然后可以将该服务注入任何控制器。

【讨论】:

    【解决方案2】:

    我发现您可以使用 $cacheFactory(文档 here)在 AngularJS 中缓存 HTTP 请求。

    一种简单的方法是:

    $http({
        url : '/your/path',
        method : 'POST',
        cache : true
    })
    .success(function (data) {
        data;
    })
    

    更多信息请访问coderwallthis StackOverflow question

    【讨论】:

      【解决方案3】:

      你看过angular-cache and angular-data吗? 它既是内置角度数据通信层的包装器,也是客户端数据存储。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-15
        • 2014-05-12
        • 2016-10-15
        • 2013-03-02
        • 2011-04-17
        相关资源
        最近更新 更多