2015-10-25 21 views
10

sto cercando di testare AppCache manifestare:Cosa c'è di sbagliato nel mio test manifest di appcache?

<?php 

// reference: http://diveintohtml5.info/offline.html 

header("Content-Type: text/cache-manifest"); 
header("Cache-Control: max-age=0, private, must-revalidate"); 

?>CACHE MANIFEST 

# todo 

/cachetest/tryme/vid/missouristate 

Ora, questo sembra avere le intestazioni giuste ispettore di rete, ed è legato alla nella parte superiore di un file html:

<!DOCTYPE html> 
<html manifest="/cachetest/cache.manifest/index.php" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 

Tuttavia, non ci sono prove che questo funzioni effettivamente. Se si stavano lavorando, non dovrebbe mostrare tutti gli altri elementi, a meno che non aveva un ambiente di rete * in quel file, come descritto here:

Infine, esaminiamo la sezione di rete. La sezione di rete in manifest di cache ha anche una sola riga, una riga che contiene solo un singolo carattere (*). Questo personaggio ha un significato speciale in una sezione di rete . Si chiama "whitelist whitelist online flag". Questo è un modo elegante per dire che tutto ciò che non è nell'appcache può ancora essere scaricato dall'indirizzo web originale, a condizione che tu abbia una connessione internet . Questo è importante per un'applicazione web offline "aperta" . Ciò significa che, mentre stai navigando in questa online Wikipedia abilitata offline offline, il tuo browser recupera le immagini, i video e le altre risorse incorporate normalmente, anche se sono su un dominio diverso. (Questo è comune nei siti Web di grandi dimensioni, anche se non sono parte di un'applicazione Web offline. Le pagine HTML sono generate e pubblicate localmente, mentre le immagini e i video sono serviti da un CDN su un altro dominio.) Senza questo contrassegno jolly , la nostra ipotetica Wikipedia offline abilitata allo si comporterebbe in modo strano quando eri online - in particolare, non caricarebbe alcuna immagine ospitata esternamente o video !

Sembra simile a web-app che funzionano offline, anche se devo chiedermi se devo configurare https su localhost o local-ip per far sì che il browser lo riconosca.

Ricordo di aver visto qualcosa di recente su Appcache ora che richiede https poiché Serviceworker richiede anche https. È qualcosa che devo installare nell'ambiente di test per farlo funzionare negli ultimi browser? Posso cambiare un about: config da usare su plain http? O mi manca qualcos'altro?

+2

downvoted perché? Perché MDN dice che è deprecato? Tuttavia è supportato dai browser. – NoBugs

+2

Non sono il downvoter, ma non capisco cosa intendi per "prova zero funziona" o "non dovrebbe mostrare nessun altro elemento". Quando ho provato il tuo codice, vedo il browser ottenere l'html, ottenere il manifest, ottenere la risorsa, quindi ricontrollare il manifest, come specificato. applicationCache.status dice anche 1 invece di 0, che indica che la cache è funzionale. Tutto senza https. Come ti aspetti che funzioni? – Sheepy

+0

@Sheepy Ci dispiace non essere stato chiaro, ho incluso la citazione dei documenti che stavo leggendo che dovrebbe chiarire quella parte. – NoBugs

risposta

0

Non si sta facendo nulla di male.

Appcache non funziona in Firefox. (almeno per me in Firefox 42.0)

Ma funziona in Chrome (ho provato su 46.0.2490.86 (più recente)).

Alcune pagine di prova:
http://appcache-demo.s3-website-us-east-1.amazonaws.com/without-network/

http://appcache-demo.s3-website-us-east-1.amazonaws.com/with-network/

http://appcache-demo.s3-website-us-east-1.amazonaws.com/offline-iframe/

E naturalmente è possibile creare il proprio file manifesto Svuota la cache e vedere di persona.

Good Luck

sorgente delle pagine di test: http://alistapart.com/article/application-cache-is-a-douchebag

+0

Davvero? Dovrebbe funzionare. https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache#Browser_compatibility – NoBugs

+0

Il lettore di librerie offline di Overdrive Media funziona in Firefox e ha " 'Il tipo di file .manifest significa che devi impostare alcune impostazioni speciali per htaccess o server per far sì che php (ad esempio) serva un file .manifest? – NoBugs

+0

Sì, ma questo è solo un altro modo per scrivere 'Content-Type: text/cache-manifest', lo stavo facendo, in apache .htaccess ho aggiunto' AddType text/cache-manifest .appcache' e ho anche provato 'Testo AddType/cache-manifest .manifest', ma a Firefox non importa cosa c'è in quel file, memorizza nella cache tutto ciò che vuole, ma la stessa impostazione funziona su Chrome, senza modificare nulla. –

Problemi correlati