2016-03-16 18 views

Antwort

21

Der Hauptunterschied besteht darin, dass AppCache eine deklarative High-Level-API ist, mit der Sie die Ressourcen festlegen, die der Browser zwischenspeichern soll. in der Erwägung, dass Service Worker eine imperative ereignisgesteuerte API auf niedriger Ebene ist, mit der Sie ein Skript schreiben, das Abrufereignisse abfangen und deren Antworten zwischenspeichern kann, während andere Vorgänge ausgeführt werden (z. B. Anzeigen von Push-Benachrichtigungen).

Die Vor- und Nachteile sind in erster Linie eine Funktion des API-Designs: AppCache ist theoretisch einfacher zu verwenden, während die Anwendungsfälle eingeschränkt sind. während Service Worker schwerer zu bedienen ist, aber flexibler ist.

Dennoch wird AppCache in der Praxis aufgrund des schlechten Designs als schwierig angesehen (eine Liste der Designprobleme finden Sie unter Application Cache Is A Douchebag). Und es wurde veraltet, so dass es von Browsern entfernt wird (per Using the application cache). Der einzige Grund, AppCache zu bevorzugen, besteht darin, eine App in Browsern zu deaktivieren, die Service Worker noch nicht unterstützen, wie Kenneth Ormandy in Don’t Wait for ServiceWorker: Adding Offline Support with One-Line empfiehlt.

Vergleichen Sie Can I use Service Workers? mit Can I use Offline web applications?, um die Unterschiede in der Browserunterstützung zu sehen. Beachten Sie jedoch, dass Browser, die Service Worker wie Chrome und Firefox unterstützen, die Unterstützung für AppCache entfernen. Daher müssen Sie beides implementieren, um Ihre App in allen Browsern zu deaktivieren, die beide Standards unterstützen.

3

Zusätzlich was Myk Melez sagte: Einer der wichtigsten Vorteile der Dienstleister gegen Application Cache ist, dass Application Cache funktioniert nur, wenn der Benutzer vom Netzwerk getrennt ist, so dass Sie nicht Situationen verwalten:

1- "langsames Netzwerk" - Ihr Verbindungssignal ist stark, jedoch verzögern einige externe Einheiten (Server, Routen usw.) die Übertragung an Ihre spezifische Anwendung.

2- "Lie-fi" (Ihr Telefon zeigt eine Verbindung zu einem Wi-Fi oder einem Mobilfunknetz mit niedrigem Signal), so scheint es verbunden zu sein, wenn dies nicht der Fall ist.

Service Workers ist wie eine Middleware, die Ihnen die Kontrolle über die Anforderungen des Browsers gibt. Sie können die Anfrage abfangen und darauf reagieren, wo Sie wollen, egal, ob Sie verbunden sind oder nicht. So können Sie das "Offline First" -Prinzip implementieren.