2016-04-30 30 views
10

Ho un problema con la memorizzazione di video in Cache Storage. E funziona bene se il video ha dimensioni ridotte, ma se la sua dimensione è di circa 100MB, ottengo questo errore:"DOMException: la voce non è stata trovata" quando si inseriscono risposte elevate a Cache Storage

DOMException: Entry was not found.

Io uso il seguente codice:

fetch(videoUrl).then(function(res) { 
    var responseToCache = res.clone(); 
    caches.open('videos').then(function(cache) { 
    var request = new Request('https://example.com/video.mp4'); 
    cache.put(request, responseToCache).catch(function(err) { 
     console.log(err); //this is where the error is thrown 
    }); 
    }); 
}); 

posso memorizzare più file di piccole dimensioni con dimensione totale> = 100 MB tuttavia.

Suppongo che questo sia un limite del browser Chrome, ma non riesco a trovare alcun riferimento in Internet.

Esiste un modo per evitare questa limitazione?

Edit:

La dimensione massima video è possibile memorizzare è di 64MB. Se la dimensione è maggiore, si verifica un errore.

Edit 2:

L'errore si verifica solo in Chrome. Firefox non ha tale limite. Ho provato video con dimensioni> = 350 MB e OK, in Firefox.

+0

ho dimenticato dove, ma ho letto che era un bug di Windows specifico per l'attuazione API cache in Chrome e sono disposti per risolverlo nelle prossime versioni. –

+0

Qual è la dimensione massima che è possibile memorizzare per 1 articolo? 5M? 20M? 99? – Rudie

+0

@Rudie La dimensione massima è 64 MB. Se il video è più grande, si verifica un errore – Curious

risposta

2

You are also responsible for periodically purging cache entries. Each browser has a hard limit on the amount of cache storage that a given origin can use. The browser does its best to manage disk space, but it may delete the Cache storage for an origin. The browser will generally delete all of the data for an origin or none of the data for an origin. Make sure to version caches by name and use the caches only from the version of the script that they can safely operate on.

Leggi tutto here

causa specifica di questa tecnologia non è ancora stabilizzata, non mi consiglia l'uso E nell'applicazione.

+0

Probabilmente non è il mio caso, perché come si dice in documenti '" Il browser cancellerà generalmente tutti i dati per un'origine o nessuno dei dati per un'origine "'. Nel mio caso non riesco a salvare un determinato video, mentre altri video sono ancora nella cache. – Curious

2

La "dimensione massima" non è un numero impostato basato sul computer e la quantità di spazio disponibile su disco, quel numero specifico è un po 'complicato da calcolare e quindi è più semplice posizionare chrome://net-internals/#httpCache in google chrome barra degli indirizzi, fare clic su "cache", quindi trovare il Max size: sotto statistics se questo numero è troppo piccolo è possibile modificare il max size.

le seguenti operazioni:

  1. la scorciatoia di Google Chrome nel menu Start o sul desktop e selezionare “Proprietà” clic destro
  2. Fare clic sulla scheda “Collegamento” nella parte superiore della “Google Chrome Proprietà "finestra.
  3. Fare clic sul campo "Destinazione" e premere il tasto "Fine" per spostare il cursore alla fine del testo.
  4. Spingere la barra spaziatrice una volta.
  5. Digitare "-disk-cache-size = 1073741824" (questo è uguale a 1 GB) nel campo, modificando il numero dopo "size =" in modo che rappresenti lo spazio che si desidera dedicare a Google Cache del disco Chrome in byte.
  6. Fare clic su "OK". Chiudi tutte le istanze in esecuzione di Google Chrome e riaprire il browser per iniziare a utilizzare la nuova dimensione della cache.

Tutte le altre domande sul tema, si riferiscono a questa pagina per una grande risposta https://superuser.com/questions/769626/why-doesnt-chrome-respect-the-diskcachesize-policy

+0

Hmm, sembra che la cache di Service Worker funzioni in modo diverso dalla cache normale e non condivida le impostazioni da 'chrome: // net-internals/# httpCache', perché non riesco a trovare le mie voci memorizzate nella cache nella pagina dietro il link "Esplora le voci della cache". – Curious

+0

Ho assegnato una taglia alla tua risposta perché hai fornito la soluzione più vicina, grazie) Tuttavia questa domanda è ancora aperta, mentre sto cercando di trovare il modo in cui l'utente ignora questa limitazione quando usa la cache html5, o, se questo è un bug di Chrome, un link alla descrizione – Curious