如何使用AngularJS启动$ http $ cache

彼得·服务员

当用户登录到我的网站的主页时,我通常会在主页上加载大量数据。比他们到达页面上的特定网址时要多得多。当他们访问ome页面时,实际上满足了我在访问特定页面时分别获取的许多数据的数据请求。

我喜欢$ http模块与$ cache一起工作的方式,并且我想利用我的首页命中的知识来填充我知道单个页面将进行的调用的缓存。

也就是说,作为示例,我的主页调用/ rest / clients,它返回所有客户端,而单个页面调用/ rest / client / 101。我想做的是使它成为一个名字,如果首先调用/ rest / clients,则不必再调用/ rest / client / 101时,就不必进行新的xhr调用,而是可以从缓存中获取数据,如下所示:如果/ rest / client / 101已经被调用。

我以前从未做过装饰器,但我想也许是$ http服务上的装饰器?我查看了$ http代码,似乎缓存存储在实际http调用的关闭位置,并且仅在下一个Get时才公开。

有没有人做过这个或类似的?我找不到。任何特定的伪编码建议将非常受欢迎。

布罗科

在数据服务中,您有2种方法,getAll和getOne。

在服务中,定义对您的getAll结果promise的引用。

然后在您的getOne服务中检查该承诺是否存在,以及是否使用它来滤除满足getOne需求所需的一项。

module.service('dataService', function($http){
  var getAllPromise = null;

  this.getAll = function(){
    if (getAllPromise !== null){
      getAllPromise;
    }

    getAllPromise = $http.get('clients');
    return getAllPromise
  };

  this.getOne = function(id){
    if (getAllPromise !== null){
      return getAllPromise
        .then(function(allData){
          //logic here to find the one in the full result set
          return theFoundItem;
        };
    }

    return $http.get('clients/' + id);
  };
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JS / JSON索引请求上的Rails HTTP Cache:如何?

来自分类Dev

使用http响应标头的Flutter Cache JSON响应

来自分类Dev

每个元素在HTTP中使用Cache-Control

来自分类Dev

将Volley与OkHttp一起使用时如何配置Http Cache?

来自分类Dev

如何正确使用cache()?

来自分类Dev

绕过HTTP响应标头Cache-Control:如何设置缓存过期时间?

来自分类Dev

如何设置嵌入在特殊非HTTP URL(Python / Django)中的URL的Cache-Control

来自分类Dev

如何修复因激活 W3 Total Cache 插件而导致的 HTTP 500 错误?

来自分类Dev

使用superagent-cache缓存HTTP响应以用于不同的参数

来自分类Dev

在Spring Boot中启用Http Cache

来自分类Dev

如何将Angular-Cache与AngularJS LocalStorageModule结合使用

来自分类Dev

Angularjs承诺使用$ http

来自分类Dev

浏览器未在HTTPS中缓存图像(HTTP正常工作)。即使使用Cache-Control:public

来自分类Dev

如何使用http请求启动我的scrapy spider?

来自分类Dev

如何使用http请求创建和启动XL Release版本?

来自分类Dev

如何使用HTTP标头启动Android应用?

来自分类Dev

如何清理/ var / cache?

来自分类Dev

如何清理/ var / cache?

来自分类Dev

运行chrome:// cache或chrome:// view-http-cache时看到“不允许加载本地资源”

来自分类Dev

http请求中的“ cache-control:max-age = 0”

来自分类Dev

HTTP Vary: Cookie vs Cache-Control: private

来自分类Dev

HTTP Vary:Cookie vs Cache-Control:私有

来自分类Dev

h = httplib2.Http('。cache')是什么意思?

来自分类Dev

找不到Laravel 5类'App \ Http \ Controllers \ Cache'

来自分类Dev

node.js http.get中的Cache-Control

来自分类Dev

h = httplib2.Http('。cache')是什么意思?

来自分类Dev

如何在春季启动时加载@Cache?

来自分类Dev

如何使用angularjs $ http.delete()请求发送数据?

来自分类Dev

AngularJS:如何在过滤器中使用$ http

Related 相关文章

  1. 1

    JS / JSON索引请求上的Rails HTTP Cache:如何?

  2. 2

    使用http响应标头的Flutter Cache JSON响应

  3. 3

    每个元素在HTTP中使用Cache-Control

  4. 4

    将Volley与OkHttp一起使用时如何配置Http Cache?

  5. 5

    如何正确使用cache()?

  6. 6

    绕过HTTP响应标头Cache-Control:如何设置缓存过期时间?

  7. 7

    如何设置嵌入在特殊非HTTP URL(Python / Django)中的URL的Cache-Control

  8. 8

    如何修复因激活 W3 Total Cache 插件而导致的 HTTP 500 错误?

  9. 9

    使用superagent-cache缓存HTTP响应以用于不同的参数

  10. 10

    在Spring Boot中启用Http Cache

  11. 11

    如何将Angular-Cache与AngularJS LocalStorageModule结合使用

  12. 12

    Angularjs承诺使用$ http

  13. 13

    浏览器未在HTTPS中缓存图像(HTTP正常工作)。即使使用Cache-Control:public

  14. 14

    如何使用http请求启动我的scrapy spider?

  15. 15

    如何使用http请求创建和启动XL Release版本?

  16. 16

    如何使用HTTP标头启动Android应用?

  17. 17

    如何清理/ var / cache?

  18. 18

    如何清理/ var / cache?

  19. 19

    运行chrome:// cache或chrome:// view-http-cache时看到“不允许加载本地资源”

  20. 20

    http请求中的“ cache-control:max-age = 0”

  21. 21

    HTTP Vary: Cookie vs Cache-Control: private

  22. 22

    HTTP Vary:Cookie vs Cache-Control:私有

  23. 23

    h = httplib2.Http('。cache')是什么意思?

  24. 24

    找不到Laravel 5类'App \ Http \ Controllers \ Cache'

  25. 25

    node.js http.get中的Cache-Control

  26. 26

    h = httplib2.Http('。cache')是什么意思?

  27. 27

    如何在春季启动时加载@Cache?

  28. 28

    如何使用angularjs $ http.delete()请求发送数据?

  29. 29

    AngularJS:如何在过滤器中使用$ http

热门标签

归档