问题标签 [angular-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
168 浏览

angularjs - Angular 默认 $http 缓存在路由更改后删除

我在我的$http一项服务中使用 Angular 的默认缓存。当用户从一个视图导航到另一个视图(我正在使用ui-router)时,缓存失效并且所有的项目都将被删除。我不想在我的应用程序的整个生命周期中使缓存无效。

编辑: 例如,这个工厂在导航到另一个路由后不返回缓存结果,它调用服务器 api 来获取结果:

如何防止默认缓存在路由更改后从自身中删除项目?

0 投票
1 回答
214 浏览

angularjs - 使用业力、角度缓存和 beforeEach Fn

早上好

我正在尝试使用 karma 测试我们相对较大的 Angular 应用程序(或者至少从一些测试开始)。我让它运行时遇到了一些小麻烦,但现在想知道;karma 提供了一个 beforeEach 函数,它在每个it代码块之前被调用。使用 Angular 时,我(似乎是这样)module('app')每次都必须在执行一个测试用例之前调用。这不是一个全面的性能障碍吗?我的意思是设置整个模块,因此应用程序完全浪费性能,不是吗?

当我将 module('app') 调用放在 beforeAll() 函数中时,我收到一个 Error: [$injector:unpr] Unknown provider: CacheFactoryProvider <- CacheFactory

有人经历过吗?我在设置测试套件时做错了什么?

beforeAll() 的想法不是允许module('app')只进行一次昂贵的调用吗?

下面是我的一个简单测试,它在我发布它的状态下运行,所以我的问题只是关于多次调用模块的成本:S

是的,我知道,缓存的问题已经解决了,但我确实对它失去了耐心:)

任何帮助将不胜感激,在此先感谢。

0 投票
2 回答
80 浏览

javascript - Angular JS - 使用服务来保存\共享数据

我正在研究一些 Angular JS SPA 。

我试图了解从架构的角度来看,使用角度服务在视图之间保存\共享数据是否正确,或者我应该使用一些缓存机制。

我的需要是保存和共享任何 REST 响应并按需求再次获取。

不幸的是,如果服务是保存数据的正确位置,我无法得到明确的答案。

请根据您的经验提出建议。

谢谢。

0 投票
1 回答
103 浏览

javascript - 如何在 ionic 1/angular 1 中预缓存 url 内容?

我对 ionic 非常陌生,并且正在开发一个应用程序,您可以在其中加载一堆类别,然后是类别中的项目列表,当您单击类别中的项目时,会加载包含基本上是图像的内容的 documenturl。目前,一切都加载正常,但我想在我的类别可见时预加载内容,所以即使我离线,我也应该能够单击类别列表中的任何项目并加载相应的文档。我在网上看了看,但除了 localstorage 之外什么都找不到,它会在您访问它之后而不是之前缓存数据。有没有办法可以预加载或预缓存内容?

这是我的控制器代码:

如果您需要任何其他信息,请告诉我。另外,目前我确实支持本地缓存以在本地缓存类别,但不支持预缓存。有没有办法事先检索这些文件?单击特定项目后,请检查我的加载文档部分,该部分处理加载文档网址。

0 投票
0 回答
131 浏览

javascript - 导致 Ionic 应用程序崩溃的 Javascript 文件

我正在尝试为我的 Ionic 应用程序创建一个新的 Angular 服务,但是新的 javascript 文件“神秘地”导致该应用程序行为不当,例如,当我调用该$cordova.getDevice()方法时,它返回我通常会从 call 获得的结果CacheFactory.get("cache_key")

我尝试从文件中删除所有代码,即使控制台中报告了错误的代码,我尝试更改服务的名称。虽然.js文件中几乎没有任何代码,但它仍然导致应用程序崩溃.

唯一有效的是从 index.html 文件中完全删除文件引用,此后应用程序运行正常。

这是角度服务:

如前所述,即使它的代码很少,它仍然会导致问题。

0 投票
1 回答
1105 浏览

angularjs - 角度缓存没有按预期工作

我试图在我的项目中使用angular-cache模块,但不确定它是否正常工作。下面是代码——</p>

在加载应用程序时,它会在控制台中打印“缓存不存在”的消息,并且会在本地存储中创建缓存。它在本地存储中创建以下键-

另一个密钥被创建

问题——</p>

  1. 在页面刷新 (f5) 时,我确实看到控制台消息再次打印,在 http 调用中,我可以看到“中心”信息正在下载,它不是从缓存中选择的。
  2. 从一页导航到另一页时,我没有看到控制台消息被打印出来。但我确实看到“中心”api 被调用。并且数据正在网络选项卡中下载。它应该从缓存中选择。

我觉得它没有从缓存中提取数据。我错过了什么吗?

0 投票
1 回答
433 浏览

angular - 在 Angular 中缓存和刷新数据

我在我的角度应用程序中遇到了这个问题,因为我正在缓存数据。在我使用 onCreate() 函数添加内容之后。我在成功订阅函数中调用了 getAll() 函数以获取新数据。但是,我仍然没有得到新的数据。我相信这是因为我的服务中的缓存数据。我怎么知道是否有新数据,或者当有新数据时如何修复我的缓存现有数据和刷新数据?

服务

getAll() ts

onCreate() -ts

0 投票
1 回答
360 浏览

javascript - $http 同时重复 API 调用,返回 promise

在我的应用程序中,我们使用微服务结构,为此我们还添加了缓存。

但是有一种情况是多个相同的请求被触发,并且请求同时被触发,所以缓存似乎也不起作用。我希望对于重复请求,它应该发送先前请求的承诺。

还有很多服务,所以对每项服务添加承诺是行不通的。是否有任何地方可以处理重复请求并在一个共同的地方传递先前的请求承诺。可能是通过使用装饰器或 http 拦截器。

服务电话

0 投票
1 回答
209 浏览

angular - Angular 4 缓存

问题:

  1. 我必须显示大量数据

  2. 使用可以改变计数的分页(用户可以选择每页显示 10 / 20 / 50)

  3. 正在尝试使用 rxjs 以下链接https://blog.thoughtram.io/angular/2018/03/05/advanced-caching-with-rxjs.html

  4. 但是我使用这个有两个问题....

    4.1。这提供了最新数据,但我需要显示该特定页面的数据,并且当我再次回来时也显示相同

    4.2. 我在顶部使用搜索,这需要我使用整个数据,但是由于此缓存分步获取数据,因此当用户在从后端服务中提取完整数据之前进行搜索时,我会遇到问题...

请提出解决此问题的最佳方法....

0 投票
1 回答
189 浏览

angular - 在 Angular App 中实现缓存的最佳方法

在 Angular App 中实现缓存的最佳方法是什么?

我发现了两种不同的方法: - 第一种是创建一个简单的服务,如 CacheService 并执行必要的逻辑。- 第二种选择是创建一个 HttpInterceptor 并捕获每个请求并返回缓存的响应(如果存在)。

是使用 HttpInterceptor 的好方法还是应该只使用没有 CachingInterceptorService 的 CacheService?