2017-03-23 2 views
2

Angenommen, der Kunde dieseServicemitarbeiter und Client-Anforderungen 'Cache-Control': 'no-cache'

fetch('example.json', { 
    headers: { 
     'Accept': 'application/json', 
     'Accept-Encoding': 'gzip', 
     'Cache-control': 'no-cache' 
    }, 
    method: 'GET' 
    }).then() 

tut Und der Server Arbeiter tut dies

self.addEventListener('fetch', (event:any) => { 
    let request = event.request 
    if (request.method !== 'GET') return 
    event.respondWith(caches.match(request) 
    .then(cachedResponse => { 
     if (cachedResponse) return cachedResponse 
     return caches.open(RUNTIME) 
     .then(cache => fetch(request) 
      .then(response => cache.put(request, response.clone()) 
       .then(() => response))) 
    })) 
}) 

Kann ich davon ausgehen caches.match(request) wird Abbildung aus 'Cache-control': 'no-cache' und einfach nur aussteigen, was im Service-Arbeiter-Cache gespeichert ist?

Antwort

2

Fühlen Sie sich frei, mich zu korrigieren, aber einige mehr Ich fand diese

https://bugs.chromium.org/p/chromium/issues/detail?id=451664#

Wenn ich testen console.log('SW :', request.headers.get('Cache-control')) die Header scheinen stript aus nach googeln werden.

Ich bekomme langsam heraus, warum einige Browser-Anbieter für Service-Mitarbeiter zögern, es macht das ganze Caching unintuitiv und Browser-Cache war schon in erster Linie nicht intuitiv.

+0

Welche Browser-Anbieter haben den Eindruck, dass sie gegen Service-Mitarbeiter sind? – sideshowbarker

+0

Vielleicht gegen ist das falsche Wort, ich werde es zu zögerlich ändern http://caniuse.com/#search=serviceworker –

+0

OK ja ich denke, das zeigt nur, Microsoft und Apple haben nicht die Ressourcen in die Umsetzung es noch. Die Implementierung von Service Workern erfordert viel Entwicklungsaufwand und beinhaltet die Berührung des gesamten Caching-Codes, der überall in der Browser-Engine verteilt ist, und muss sorgfältig ausgeführt werden, um das Risiko von Sicherheits-Exploits zu vermeiden. Aber wie auch immer, Microsoft und Apple werden es schließlich implementieren – sideshowbarker

Verwandte Themen