当前位置: 首页 > 面试题库 >

如何刷新/使AngularJS中的$ resource缓存无效

常俊侠
2023-03-14
问题内容

我有一个简单的User $ resource,它使用默认的$ http缓存实现,如下所示:

factory('User', function($resource){
    return $resource(endpoint + '/user/current/:projectId', {},
        {get: 
            {
                cache: true,
                method: 'GET'
            }
        }
    );
})

这非常好用,即我的服务器在应用程序中仅被调用一次,然后从缓存中获取值。

但是我需要在执行某些操作后从服务器刷新值。有没有简单的方法可以做到这一点?

谢谢。


问题答案:

保留布尔值并获取$http缓存:

var $httpDefaultCache = $cacheFactory.get('$http');

然后,您可以像$cacheFactory使用所提供的任何其他缓存一样控制它,这是下面提供的用法实例:

$httpDefaultCache.remove(key);
// Where key is the relative URL of your resource (eg: /api/user/current/51a9020d91799f1e9b8db12f)


 类似资料:
  • 我使用JPA(Eclipse Link 2.5)进行持久性。我的Web应用程序包含AJAX页面更新。保存帖子时,发布的内容会在不刷新浏览器的情况下显示。该帖子具有使用OneTo多关系与之关联的标签。这些标签应该在保存后也会显示出来。但是,由于启用了缓存,我无法获取标签。 这是我的代码: 我怎样才能让事情运转起来?如何刷新一个实体及其所有关联的实体?谢了。

  • 问题内容: 我正在使用$ resource并缓存get请求的结果。我的问题是,在发布请求后,缓存不会失效。 这是服务的返回值: 这是我在控制器内部使用的保存方法。如您所见,我正在对post请求使用回调,以重新计算名词的查询/列表。 我想在调用post或其他非get方法后使缓存无效。我该怎么办?这是否已经内置在$ resource中,还是我需要自己实现? 问题答案: 您可以创建包装器服务以根据需要进

  • 本文向大家介绍如何刷新浏览器的应用缓存?相关面试题,主要包含被问及如何刷新浏览器的应用缓存?时的应答技巧和注意事项,需要的朋友参考一下 按F5或浏览器刷新按钮 浏览器会在请求中附加必要的缓存协商,但不允许浏览器直接使用本地缓存,它能够让 Last-Modified、ETag发挥效果,但是对Expires无效。 按Ctrl+F5或按Ctrl并点击刷新按钮 这种方式就是强制刷新,总会发起一个全新的请求

  • 问题内容: 我有一个JpaRepository在Spring MVC应用程序中持久保存新创建的实体。这个实体看起来像这样(非常简化): 和版本实体: 我创建一个这样的翻译对象 其中11是从一开始就已经存在于数据库中的版本。请注意,我没有为ClientVersionDTO 设置和的值。 然后,我有一个持久化新对象的服务(我使用库将DTO转换为实体) 请注意我的评论“ t2.getVersion()返

  • 问题内容: 我有一个click事件发生在我的自定义指令范围之外,因此,我使用jQuery.click()侦听器并在我的范围内调用一个函数,而不是使用“ ng- click”属性,如下所示: close()是一个简单的函数,如下所示: 在我看来,我有一个绑定到isOpen的“ ng-show”元素,如下所示: 调试时,我发现正在调用close(),isOpen被更新为false,但是AngularJ

  • 有没有办法刷新Laravel 4中的所有缓存?我正在使用文件进行缓存。我在文档上读到了可以使用的,但是如果我需要删除所有缓存怎么办? artisan命令也很有用,我认为回购协议存在问题,但不确定它是否已经实现。 谢谢!