在Angular中缓存图像

时间:2019-05-31 02:29:54

标签: angular caching

我大约有300种设计,并且一次加载全部。我想缓存这些图像,而不是每次都调用服务器。 (我的情况大部分时间都不会改变)。下面是我如何加载它们的代码。缓存它们的最佳方法是什么。

app-thumbnail是一个不同的组件,我只在其中加载图像。

 <div *ngFor="let design of designs">
      <div (click)="showDesignDetails(design.designId)">
          <app-thumbnail [designId]="design.designId"></app-thumbnail>          
      </div>
    </div>

2 个答案:

答案 0 :(得分:0)

我可以想到两种方式:

1)Application Cache Manifest。根据文档,

  

开发人员可以使用应用程序缓存(AppCache)接口来   指定浏览器应缓存的资源并提供给   离线用户。缓存的应用程序加载并正常工作   即使用户离线时也单击刷新按钮。

2)Service Workers。通过使用服务人员,您可以缓存各种类型的资源,包括图像和网络请求。

尽管这使我想到了使用Progressive Web Applications(PWA)的主题。由于您使用的是Angular,因此可以按照官方的Angular guide来设置服务人员,轻松地将其设置为PWA(基于服务人员的使用情况)。

答案 1 :(得分:0)

在这里您可以使用ng-lazyload-image

  

一个小库,用于为零依赖的Angular应用延迟加载图像

npm install ng-lazyload-image

import { Component } from '@angular/core';

@Component({
  selector: 'image',
  template: `
    <img [defaultImage]="defaultImage" [lazyLoad]="image">
  `
})
class ImageComponent {
  defaultImage = 'https://www.placecage.com/1000/1000';
  image = 'https://images.unsplash.com/photo-1443890923422-7819ed4101c0?fm=jpg';
}