2016-07-27 25 views
1

Edited, um die zugrunde liegende Frage zu klären.Firefox - kann die zwischengespeicherte Videodatei nicht aktualisieren

Ich versuche, eine einfache HTML5-Webseite mit einem Bild und einem Video zu debuggen. Alles ist in Ordnung. Das Video wird korrekt wiedergegeben. Aber wenn ich versuche, die Seite zu aktualisieren, wird alles außer der Videodatei heruntergeladen. Ich benutze die Firefox-Entwickler-Tools, aber ich kann nicht verstehen, was vor sich geht.

Auf der Registerkarte Netzwerk sehe ich die .html Datei wird heruntergeladen, dann die image.jpg Datei. Aber ich sehe nie die video.mp4 Datei heruntergeladen. Das Video wird in Ordnung wiedergegeben, aber es ist nicht die aktuelle Version auf dem Server. Es scheint eine vorherige Version zu sein, die zwischengespeichert wurde.

Ich bin verwundert, warum das sein sollte. Der Cache ist in Entwicklertools deaktiviert. Ich aktualisiere die Seite mit Ctrl+F5. Es ist, als ob das Video von einem geheimen lokalen Cache aus bedient wird, von dem ich nichts weiß. Ich benutze Firefox 47.0.1. Das gleiche passiert auch, wenn ich mit Firebug teste.

Bearbeiten. Ich habe jetzt Developer Tools in Chrome ausprobiert und es ist genau das gleiche. Beim ersten Zugriff auf die Seite kann ich video.mp4 herunterladen. Beim nächsten Neuladen sehe ich die .html und .jpg Dateien normalerweise, aber nicht die video.mp4 Datei. Es muss irgendwo zwischengespeichert werden, weil es spielt. Ich habe den Cache in Chrome Dev Tools deaktiviert. Ich habe den Cache explizit gelöscht und ein Inkognito-Fenster versucht. Abgesehen vom allerersten Mal sehe ich keinen Hinweis auf die heruntergeladene Videodatei.

Ich muss etwas offensichtlich fehlen. Kann jemand anderes das reproduzieren?

Hier ist mein HTML.

<! DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"> 
    </head> 
    <body> 
    <p>Test page.</p> 
    <img src="media/image.jpg"> 
    <video src="media/video.mp4" controls=""> 
     Display this if the browser can't play video. 
    </video> 
    </body> 

Informationen bewegten von Kommentaren zu einer Antwort auf die Frage:
1:
Dank @nakji. Das Löschen des Caches und das private Durchsuchen machten überhaupt keinen Unterschied. Aber das Schließen des Browsers hat es getan. Ich habe den Browser nach dem Löschen des Cache erneut geöffnet. Bei meinem allerersten Zugriff auf die Seite konnte ich zwei GETs für video.mp4 mit den Antworten 206 (Teilinhalt) sehen. Aber danach war es wieder beim ursprünglichen Problem. Ich werde herunterladen Chrome und versuchen, dass

2:
@ManoDestro. Ich habe alles versucht, um einen neuen Download von video.mp4 zu erzwingen. Aber es passiert nicht. Ich lade die Seite mit Ctrl + F5. Ich habe das Caching in den Dev Tools-Einstellungen deaktiviert. Ich habe den Cache manuell gelöscht. Ich habe ein privates Browserfenster ausprobiert. Ich kann an nichts anderes denken. Es ist, als würde das Video von einem geheimen Cache geliefert, der nicht den normalen Caching-Regeln entspricht. Ich habe mehrere Tools verwendet, um zu bestätigen, dass die Datei nicht den Draht verlässt - FF Dev Tools, Firebug und jetzt Wireshark. Kann jemand bitte mit einem ähnlichen Setup testen?

Antwort

2

Nach einem ganzen Tag Googeln kann ich nun meine eigene Frage beantworten. Es stellt sich heraus, dass Firefox einen speziellen "Medien-Cache" für HTML5-Video- und Audio-Inhalte hat, der vollständig getrennt aus dem regulären Cache ist, die jeder kennt. Es ist optimiert für die hohe Bandbreite und die großen Dateien, die mit Medieninhalten verbunden sind. Einer der Entwickler, Robert O'Callahan, erklärt alles here.

Die dumme Sache ist, dass dieser Mediencache nicht zu verschwinden scheint, wenn Sie es erwarten würden. Tatsächlich scheint es nie geklärt zu werden. Je. Das Ergebnis ist, dass Firefox weiterhin veraltete Inhalte aus dem Cache bereitstellt, wenn Sie wirklich möchten, dass die Mediendatei erneut vom Server abgerufen wird. Das war das Problem, das ich ursprünglich versuchte zu debuggen. Firefox hat immer wieder das falsche Video abgespielt, nachdem ich die Datei auf dem Server geändert habe. Ich konnte es nicht bekommen, um die neue Version herunterzuladen.

Alle Dinge, die Sie normalerweise tun, um das Neuladen einer Seite zu erzwingen, funktionieren nicht mit dem Mediencache. Die folgenden haben keine Wirkung.

  • Der Benutzer wählt 'Löschen des letzten Verlaufs' und löscht alles.
  • Der Benutzer deaktiviert das Zwischenspeichern in Developer Tools.
  • Der Benutzer erzwingt ein vollständiges Neuladen der Seite mit Strg + F5.

Das einzige, was funktioniert, ist das Schließen des Browsers und erneutes Starten. Ich finde mich immer noch in diesem komplexen Gebiet zurecht. Wenn jemand mehr darüber weiß, bitte Kommentar.

Ich habe dies als Fehler zu Firefox here gemeldet.

+0

Basierend auf dem Inhalt der verknüpften Seite kann es möglich sein, 'media.cache_size' in' '' '' '' 'oder einen sehr kleinen Wert in' about: config' zu ändern. Dies kann wirksam sein, wenn Sie es entweder auf diesem neuen Wert belassen oder es für eine Zeit oder für eine Aktion niedrig setzen und dann zum ursprünglichen Wert zurückkehren. Anders als bei einer Sitzung (set-> restart FF-> use-> Zurück zum ursprünglichen Wert-> FF neu starten) hängt es davon ab, wann dieser Wert aktiviert ist und ob er mehr als einmal pro FF-Sitzung aktiviert wird. Anscheinend ist es Zeit für [RTFS] (https://dxr.mozilla.org/mozilla-central/search?q=media.cache_size&redirect=false). – Makyen