AngularPWA离线时始终出现'Failedtofetch”的问题。
创始人
2024-10-29 02:00:21
0

可以通过使用 service worker 提供的缓存机制来解决此问题。以下是一些代码示例:

首先,在 app.module.ts 中添加以下代码以启用 service worker:

import { ServiceWorkerModule } from '@angular/service-worker';
import { environment } from '../environments/environment';

@NgModule({
  imports: [
    BrowserModule,
    ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production })
  ],
  // ...
})
export class AppModule {}

然后,在 service worker 中添加以下代码以缓存所有 GET 请求:

self.addEventListener('fetch', event => {
  event.respondWith(
    caches.match(event.request).then(response => {
      if (response) {
        return response;
      }
      return fetch(event.request).then(response => {
        if (!response || response.status !== 200) {
          return response;
        }
        const clonedResponse = response.clone();
        caches.open('my-cache').then(cache => {
          cache.put(event.request, clonedResponse);
        });
        return response;
      });
    })
  );
});

最后,在你的 Angular 应用中使用 HttpClient 替换所有的 Http 请求。这将自动使用缓存版本,如果没有缓存则将请求发送到服务器:

import { HttpClient } from '@angular/common/http';

export class MyComponent {
  constructor(private http: HttpClient) {}

  getData() {
    this.http.get('/api/data').subscribe(result => {
      // ...
    });
  }
}

这样你的 Angular PWA 就可以在离线时正常运行了!

相关内容

热门资讯

交流学习经验“wepoker有... >>您好:wepoker有没有透视挂软件加扣扣群确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用...
技巧知识分享“wepoker是... wepoker是不是有辅助是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户...
一分钟揭秘“wepoker辅助... 无需打开直接搜索;操作使用教程:一分钟揭秘“wepoker辅助开挂方法”开挂辅助器(透视)线上教程1...
技术分享“wepoker是不是... >>您好:wepoker是不是有透视软件软件加扣扣群确实是有挂的,很多玩家在这款游戏中打牌都会发现很...
玩家必看攻略“德州wepoke... >>您好:德州wepoker透视挂确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,...
玩家必用“WPK免费挂机辅助器... >>您好:WPK免费挂机辅助器软件加扣扣群确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌...
最新研发“wepoker到底有... 无需打开直接搜索;操作使用教程:最新研发“wepoker到底有透视软件吗”开挂辅助下载(透视)安装教...
终于清楚“wpk德州辅助”开挂... 您好:wpk德州辅助的软件,软件加客服确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别...
揭秘“wpk透视app有哪些”... 揭秘“wpk透视app有哪些”开挂辅助工具(透视)教你攻略是一款可以让一直输的玩家,快速成为一个“必...
揭秘“wepoker原来有挂”... 您好:wepoker原来有挂这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用...