2016-03-16 25 views

risposta

21

La differenza principale è che AppCache è un'API dichiarativa di alto livello, con la quale si specifica il set di risorse che si desidera venga memorizzato nel browser; mentre Service Worker è un'API basata su eventi di basso livello, imperativa, con cui si scrive uno script in grado di intercettare gli eventi di recupero e memorizzare nella cache le risposte insieme a fare altre cose (come la visualizzazione delle notifiche push).

I pro e i contro sono in gran parte una funzione del design dell'API: in teoria, AppCache è più facile da utilizzare, pur avendo casi d'uso più limitati; mentre Service Worker è più difficile da usare, ma è più flessibile.

Tuttavia, AppCache è considerato difficile da utilizzare in pratica a causa di una progettazione scadente (vedere Application Cache Is A Douchebag per un elenco di problemi di progettazione). Ed è stato deprecato, quindi è stato rimosso dai browser (per Using the application cache).

Pertanto, l'unica ragione per preferire AppCache è quella di non in linea un'app sui browser che non supportano ancora il Service Worker, come raccomanda Kenneth Ormandy in Don’t Wait for ServiceWorker: Adding Offline Support with One-Line.

Confronta Can I use Service Workers? a Can I use Offline web applications? per vedere le differenze nel supporto del browser. Tuttavia, tieni presente che i browser che supportano Service Worker, come Chrome e Firefox, stanno rimuovendo il supporto per AppCache, quindi dovrai implementare entrambi per mettere offline l'app su tutti i browser che supportano entrambi gli standard.

3

In aggiunta di ciò che Myk Melez detto, Uno dei principali vantaggi di Operai contro Application Cache Cache è che l'applicazione funziona solo quando l'utente è disconnesso dalla rete, in modo non è possibile gestire situazioni di:

1- "rete lenta": il segnale di connessione è forte, tuttavia alcune entità esterne (server, percorsi, ecc.) ritardano la trasmissione alla specifica applicazione.

2- "Lie-fi" (il telefono mostra collegato a una rete Wi-Fi o cellulare con segnale basso), quindi sembra essere collegato quando in realtà non lo è.

Service Workers è come un middleware che ti dà il controllo sulle richieste che il browser sta facendo, puoi effettivamente intercettare la richiesta e rispondere ovunque vuoi, indipendentemente dal fatto che tu sia connesso o meno. Quindi puoi implementare il principio "offline first".