小编Aar*_*ein的帖子

Service Worker 发送两个请求

我已经实现了一个服务工作者,它缓存所有离线使用请求,这很好用。但是每次我加载一个页面时,都会有两个请求访问我的网络服务器(一个来自服务工作者,一个来自浏览器)!

如何缓存请求并且只加载一次页面?

service-worker.js

self.addEventListener('install', function(event) {
  //load error page which will show if user has no internet
  var errorPage = new Request('/?p=error&offline');
  event.waitUntil(pushToCache(errorPage));
});

//If any fetch fails, it will look for the request in the cache and serve it from there first
self.addEventListener('fetch', function(event) {
  event.waitUntil(pushToCache(event.request));

  event.respondWith(
    fetch(event.request) //try loading from internet
    .catch(function (error) {
      return fetchFromCache(event.request);
    }) //no internet connection try getting it from cache
  );
});

function pushToCache(request){
  if(request.method == "GET"){
    return caches.open('stm-app').then(function (cache) {
      return fetch(request).then(function …
Run Code Online (Sandbox Code Playgroud)

javascript pwa

6
推荐指数
1
解决办法
3153
查看次数

标签 统计

javascript ×1

pwa ×1