Frage

Ich habe diesen Code auf einem Applet. Das Applet funktioniert ok, aber ich viele unnötige doppelte Download. Insbesondere habe ich festgestellt, dass jeder „getResource“ löst einen Download der JAR-Datei.

static {
    ac = new ImageIcon(MyClass.class.getResource("images/ac.png")).getImage();
    dc = new ImageIcon(MyClass.class.getResource("images/dc.png")).getImage();
    //...other images
}

Wie kann das vermieden werden?

War es hilfreich?

Lösung

Sie schließen Sie das Applet auf einer HTML-Seite? Wenn ja, versuchen Sie das JAR-Caching zu aktivieren, wie hier beschrieben wird: http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/applet_caching.html

Wenn das nicht aus irgendeinem Grunde helfen :) vielleicht Ihre Ressourcen / Bilder entlang Applet JAR auf einem Webserver aussetzen und sie erreichen separate HTTP-Anfragen mit (ja, ihre hässlichen und ja, es nicht Anzahl der benötigten Downloads reduzieren , aber es zumindest die Datenmenge reduziert, die übertragen werden müssen).

Andere Tipps

Entfernen Sie einfach alle Instanzen URLConnection.setDefaultUseCaches (false) wird das Problem lösen.

Bitte beachten Sie für weitere Informationen.

http: // java-Kreuzung .blogspot.com / 2009/11 / Applet-jar-Caching-not-working.html

Nur eine Abhilfe:

Sie können Ihre Bilder in einer Zip-Datei in dem Topf setzen, bekommen, dass ein ZipInputStream verwenden und die Bilder von dort zu extrahieren.

Welche Java VM verwenden Sie? Und welche Server verwenden Sie?

  • Es ist ein Fehler in der Browser-Plugin unter Linux.
  • Wenn der Server dann nicht das geänderte Datum senden Java kann die JAR-Datei nicht zwischengespeichert werden.

Wenn Ihr Applet immer lädt das Glas obwohl Glas zwischengespeichert wird, stellen Sie sicher, dass Sie nicht die URLConnection Caching über die API deaktiviert. URLConnection.setUseCaches und URLConnection.SetDefaultUseCaches

ImageIcon zugrunde liegende Mechanismus, um die Ressource zum Abrufen ist ein URLConnection. Der Aufruf URLConnection.setDefaultUseCaches(false), setzt einen „Teil des statischen Zustand aller URLConnections“, die die JRE veranlassen, den Cache zu ignorieren und das gesamte Glas auf sie zugegriffen jedes Mal erneut herunterladen.

Sie einfach alle Instanzen setDefaultUseCaches Entfernen wird das Problem lösen.

das ist ein Repost aus: http: //java-junction.blogspot.com/2009/11/applet-jar-caching-not-working.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top