웹 프론트엔드 JS 튜토리얼 Anglejs 캐시를 작동하는 방법

Anglejs 캐시를 작동하는 방법

Jun 15, 2018 pm 03:00 PM
angular 은닉처

이번에는Angularjs캐시를 어떻게 운용하는지, 그리고Angularjs캐시 운용시 주의사항은 무엇인지 알려드리겠습니다. 다음은 실제 사례로 살펴보도록 하겠습니다.

1. 캐시란 무엇입니까

캐시는 향후 요청을 더 빠르게 처리할 수 있도록 데이터를 투명하게 저장하는 구성 요소입니다.

캐시가 처리할 수 있는 요청이 많을수록 전반적인 시스템 성능이 더욱 향상됩니다.

2. Angular에서의 캐싱

2.1 $cacheFactory 소개

$cacheFactory는 모든 Angular 서비스에 대한 캐시 객체를 생성하는 서비스입니다. 내부적으로 $cacheFactory는 명시적으로 생성하지 않더라도 기본 캐시 객체를 생성합니다.

캐시 객체를 생성하려면 $cacheFactory를 사용하여 ID가 ​​있는 캐시를 생성할 수 있습니다.

var 캐시 = $cacheFactory('myCache')
이 $cacheFactory 메소드는 2개의 매개변수를 허용합니다:

cacheId(문자열) : 이 캐시Id는 캐시를 생성할 때 사용하는 ID 이름입니다. get() 메소드를 통해 캐시 이름을 사용하여 참조할 수 있습니다.

용량: 이 용량은 주어진 시간에 캐시를 사용하여 저장되고 저장될 캐시 키-값 쌍의 최대 수를 나타냅니다.

2.2 캐시 개체

캐시 개체 자체에는 캐시와 상호 작용하는 데 사용할 수 있는 다음과 같은 메서드가 있습니다.

info(): info() 메서드는 캐시 개체의 ID, 크기 및 옵션을 반환합니다.

put(): put() 메서드를 사용하면 JavaScript 개체 값 형식의 키(문자열)를 캐시에 넣을 수 있습니다. 캐시.put("hello","world");

put() 메서드는 캐시에 넣은 값을 반환합니다.

get(): get() 메서드를 사용하면 키에 해당하는 캐시 값에 액세스할 수 있습니다. 키가 발견되면 해당 값을 반환하고, 그렇지 않으면 정의되지 않은 값을 반환합니다. 캐시.get("hello");

remove() : 제거() 함수는 키-값 쌍이 발견된 경우 캐시에서 제거하는 데 사용됩니다. 찾을 수 없으면 unundefined 를 반환합니다. 캐시.remove("hello");

removeAll(): RemoveAll() 함수는 캐시를 재설정하고 캐시된 모든 값을 제거하는 데 사용됩니다.

destory(): destory() 메서드는 $cacheFactory 캐시 레지스트리에서 지정된 캐시에 대한 모든 참조를 제거하는 데 사용됩니다.

3. $http의 캐시

Angular의 $http 서비스는 $http ID로 캐시를 생성합니다. $http 요청을 기본 캐시 개체로 사용하는 것은 간단합니다. $http() 메서드를 사용하면 캐시 매개변수를 전달할 수 있습니다.

3.1 기본 $http 캐시

기본 $http 캐시는 데이터가 자주 변경되지 않을 때 특히 유용합니다. 다음과 같이 설정할 수 있습니다:

$http({
  method: 'GET',
  url: '/api/users.json',
  cache: true  //设置为true只是用来使用$http默认的缓存机制
});
로그인 후 복사

이제 $http를 통해 URL /api/user.json에 대한 모든 요청은 기본 $http 캐시에 저장됩니다. 이 $http 캐시의 요청 키는 전체 URL 경로입니다.

필요한 경우 이 기본 $http 캐시를 작동할 수도 있습니다(예를 들어 증분 변경 사항을 상기시키기 위해 캐시되지 않은 다른 요청을 시작하는 경우 기본 $http 요청에서 이 요청을 지울 수 있습니다).

$http의 기본 요청을 참조하려면 다음 ID를 사용하여 $cacheFactory()를 통해 캐시를 가져옵니다.

var cache = $cacheFactory('$http');
로그인 후 복사

제어 중인 캐시의 경우 필요할 때 캐시 검색과 같은 모든 일반 작업을 수행할 수 있습니다. 항목이 캐시에서 지워지거나 캐시된 모든 참조가 제거됩니다.

// 获取上一次请求的缓存
var usersCache = cache.get('http://example.com/api.users.json');
// 删除上一次请求的缓存入口
cache.remove('http://example.com/api.users.json');
// 重新开始并移除全部缓存
cache.removeAll();
로그인 후 복사
    var cache = $cacheFactory.get('$http');
    if(cache.get('cacheData')){
      console.log(cache.get('cacheData'));
    }else{
      helloService.play().then(
        function (data) {
          cache.put("cacheData", data);  //往缓存中放入数据
          console.log(data);
        }
      );
    }
로그인 후 복사

3.2 사용자 정의 캐시

때로는 캐시를 더 잘 제어하고 캐시 성능에 대한 규칙을 만드는 것이 가능합니다. 이를 위해서는 $http 요청을 사용하기 위해 새 캐시를 만들어야 합니다.

사용자 정의 캐시를 통해 $http 요청을 만드는 것은 쉽습니다. 요청에 true 부울 매개변수를 전달하는 대신 캐시 인스턴스를 전달할 수 있습니다.

var myCache = $cacheFactory('myCache');
$http({
  method: 'GET',
  utl: '/api/users.json',
  cache: myCache
});
로그인 후 복사

간단한 데모: 캐시 서비스를 정의하고, 사용하려는 컨트롤러에 종속성을 주입하고 직접 사용하세요.

define([
  'angularModule'
],function(app){
  app.factory('myCache', ['$cacheFactory', function($cacheFactory){
    return $cacheFactory('myCache'); //自定义一个缓存服务
  }])
});
로그인 후 복사
    //自定义缓存,有缓存就从缓存里取,否则就发送请求
    if(myCache.get('cacheData')){
      console.log(myCache.get('cacheData'));
    }else{
      helloService.play(myCache).then(
        function (data) {
          myCache.put("cacheData", data);
          console.log(data);
        }
      );
    }
      cache:只是为了可以使用默认$http的缓存机制
      play : function (myCache) {
        return httpRequestService.request({
          method : 'get',
          url : 'http://localhost:8080/hello/play',
          cache : myCache
        })
      }
로그인 후 복사

이제 $http는 기본 캐시 대신 사용자 정의 캐시를 사용합니다.

4. $http

에 대한 기본 캐시를 설정합니다.

每次我们想要发起一个 $http 请求时都要给它传递一个缓存实例并不方便,特别是对每个请求使用同一缓存的时候。

其实可以在模块的 .config() 方法中通过 $httpProvider 设置 $http 默认使用的缓存对象。

angular.module('myApp', []).config(function($httpProvider) {
  $httpProvider.defaults.cache = $cacheFactory('myCache', {capacity: 20});
});
로그인 후 복사

这个 $http 服务不再使用它为我们创建的默认缓存;它会使用我们自定义的缓存,实际上这就是一个近期缓存最久未使用算法① (Least Recently Used,LRU)。

LRU缓存根据缓存容量只保留最新的缓存数目。也就是说,我们的缓存容量为20,因此会缓存前20个请求,但是进入第21个请求时,最近最少使用的请求条目就会从缓存中被删除。这个缓存自身会负责具体哪些要维护,哪些要移除。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

jquery+fullpage添加界面内的头部与版权

如何使用webpack+vue环境局域网

위 내용은 Anglejs 캐시를 작동하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

비디오 파일은 브라우저 캐시의 어디에 저장됩니까? 비디오 파일은 브라우저 캐시의 어디에 저장됩니까? Feb 19, 2024 pm 05:09 PM

브라우저는 어떤 폴더에 동영상을 캐시하나요? 우리는 매일 인터넷 브라우저를 사용하다 보면 유튜브에서 뮤직비디오를 보거나 넷플릭스에서 영화를 보는 등 다양한 온라인 동영상을 자주 보게 됩니다. 이러한 비디오는 나중에 다시 재생할 때 빠르게 로드할 수 있도록 로드 프로세스 중에 브라우저에 의해 캐시됩니다. 그렇다면 문제는 캐시된 동영상이 실제로 어느 폴더에 저장되어 있느냐는 것입니다. 브라우저마다 캐시된 비디오 폴더를 다른 위치에 저장합니다. 아래에서는 몇 가지 일반적인 브라우저와 해당 브라우저를 소개합니다.

Ubuntu 24.04에 Angular를 설치하는 방법 Ubuntu 24.04에 Angular를 설치하는 방법 Mar 23, 2024 pm 12:20 PM

Angular.js는 동적 애플리케이션을 만들기 위해 자유롭게 액세스할 수 있는 JavaScript 플랫폼입니다. HTML 구문을 템플릿 언어로 확장하여 애플리케이션의 다양한 측면을 빠르고 명확하게 표현할 수 있습니다. Angular.js는 코드를 작성, 업데이트 및 테스트하는 데 도움이 되는 다양한 도구를 제공합니다. 또한 라우팅 및 양식 관리와 같은 많은 기능을 제공합니다. 이 가이드에서는 Ubuntu24에 Angular를 설치하는 방법에 대해 설명합니다. 먼저 Node.js를 설치해야 합니다. Node.js는 서버 측에서 JavaScript 코드를 실행할 수 있게 해주는 ChromeV8 엔진 기반의 JavaScript 실행 환경입니다. Ub에 있으려면

Linux에서 DNS 캐시를 보고 새로 고치는 방법 Linux에서 DNS 캐시를 보고 새로 고치는 방법 Mar 07, 2024 am 08:43 AM

DNS(DomainNameSystem)는 인터넷에서 도메인 이름을 해당 IP 주소로 변환하는 데 사용되는 시스템입니다. Linux 시스템에서 DNS 캐싱은 도메인 이름과 IP 주소 간의 매핑 관계를 로컬로 저장하는 메커니즘으로, 도메인 이름 확인 속도를 높이고 DNS 서버의 부담을 줄일 수 있습니다. DNS 캐싱을 사용하면 시스템이 매번 DNS 서버에 쿼리 요청을 보낼 필요 없이 이후에 동일한 도메인 이름에 액세스할 때 IP 주소를 신속하게 검색할 수 있으므로 네트워크 성능과 효율성이 향상됩니다. 이 문서에서는 Linux에서 DNS 캐시를 보고 새로 고치는 방법과 관련 세부 정보 및 샘플 코드에 대해 설명합니다. DNS 캐싱의 중요성 Linux 시스템에서 DNS 캐싱은 중요한 역할을 합니다. 그 존재

애플리케이션 속도 향상: Guava 캐싱에 대한 간단한 가이드 애플리케이션 속도 향상: Guava 캐싱에 대한 간단한 가이드 Jan 31, 2024 pm 09:11 PM

Guava Cache 시작하기: 애플리케이션 속도 향상 Guava Cache는 애플리케이션 성능을 크게 향상시킬 수 있는 고성능 인메모리 캐싱 라이브러리입니다. LRU(최근에 사용됨), LFU(최근에 사용됨), TTL(Time to Live)을 포함한 다양한 캐싱 전략을 제공합니다. 1. Guava 캐시를 설치하고 프로젝트에 Guava 캐시 라이브러리의 종속성을 추가합니다. com.goog

Angular 구성 요소 및 해당 표시 속성: 비블록 기본값 이해 Angular 구성 요소 및 해당 표시 속성: 비블록 기본값 이해 Mar 15, 2024 pm 04:51 PM

Angular 프레임워크의 구성 요소에 대한 기본 표시 동작은 블록 수준 요소에 대한 것이 아닙니다. 이 디자인 선택은 구성 요소 스타일의 캡슐화를 촉진하고 개발자가 각 구성 요소가 표시되는 방법을 의식적으로 정의하도록 장려합니다. CSS 속성 표시를 명시적으로 설정하면 Angular 구성 요소의 표시를 완전히 제어하여 원하는 레이아웃과 응답성을 얻을 수 있습니다.

HTML 파일이 캐시되나요? HTML 파일이 캐시되나요? Feb 19, 2024 pm 01:51 PM

제목: HTML 파일의 캐싱 메커니즘 및 코드 예제 소개: 웹 페이지를 작성할 때 브라우저 캐싱 문제에 자주 직면합니다. 이 기사에서는 HTML 파일의 캐싱 메커니즘을 자세히 소개하고 독자가 이 메커니즘을 더 잘 이해하고 적용할 수 있도록 몇 가지 특정 코드 예제를 제공합니다. 1. 브라우저 캐싱 원리 브라우저에서는 웹페이지에 액세스할 때마다 먼저 캐시에 웹페이지 복사본이 있는지 확인합니다. 있는 경우 웹페이지 콘텐츠를 캐시에서 직접 가져옵니다. 이것이 브라우저 캐싱의 기본 원칙입니다. 브라우저 캐싱 메커니즘의 이점

PHP APCu의 고급 활용: 숨겨진 힘의 잠금 해제 PHP APCu의 고급 활용: 숨겨진 힘의 잠금 해제 Mar 01, 2024 pm 09:10 PM

PHPAPCu(php 캐시 대체)는 PHP 애플리케이션을 가속화하는 opcode 캐시 및 데이터 캐시 모듈입니다. 잠재력을 최대한 활용하려면 고급 기능을 이해하는 것이 중요합니다. 1. 일괄 작업: APCu는 동시에 많은 수의 키-값 쌍을 처리할 수 있는 일괄 작업 방법을 제공합니다. 이는 대규모 캐시 삭제 또는 업데이트에 유용합니다. //일괄적으로 캐시 키 가져오기 $values=apcu_fetch(["key1","key2","key3"]) //일괄적으로 캐시 키 지우기 apcu_delete(["key1","key2","key3"]) ;2 .캐시 만료 시간 설정: APCu를 사용하면 캐시 항목의 만료 시간을 설정하여 지정된 시간 후에 자동으로 만료되도록 할 수 있습니다.

브라우저 캐시에서 로컬로 비디오 파일을 저장하는 방법 브라우저 캐시에서 로컬로 비디오 파일을 저장하는 방법 Feb 23, 2024 pm 06:45 PM

브라우저 캐시 동영상을 내보내는 방법 인터넷의 급속한 발전으로 동영상은 사람들의 일상생활에서 없어서는 안 될 부분이 되었습니다. 웹을 탐색할 때 저장하거나 공유하고 싶은 비디오 콘텐츠를 자주 접하지만 비디오 파일이 브라우저의 캐시에만 존재할 수 있기 때문에 비디오 파일의 소스를 찾을 수 없는 경우가 있습니다. 그렇다면 브라우저 캐시에서 비디오를 어떻게 내보내나요? 이 기사에서는 몇 가지 일반적인 방법을 소개합니다. 먼저 브라우저 캐시라는 개념을 명확히 해야 합니다. 브라우저 캐시는 브라우저에서 사용자 경험을 개선하는 데 사용됩니다.

See all articles