Download multiplo JAR
-
03-07-2019 - |
Domanda
Ho questo codice su un'applet. L'applet funziona bene, ma ho molti download duplicati non necessari. In particolare, ho notato che ogni "getResource" attiva un download del file .JAR.
static {
ac = new ImageIcon(MyClass.class.getResource("images/ac.png")).getImage();
dc = new ImageIcon(MyClass.class.getResource("images/dc.png")).getImage();
//...other images
}
Come può essere evitato?
Soluzione
Includete l'applet in una pagina HTML? In tal caso, prova ad abilitare la memorizzazione nella cache JAR, come descritto qui: http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/applet_caching.html
Se ciò non aiuta per qualche motivo :) forse esporre le risorse / immagini lungo il JAR dell'applet su un server Web e raggiungerle utilizzando richieste HTTP separate (sì, è brutto e sì, non riduce il numero di download necessari , ma almeno riduce la quantità di dati che devono essere trasferiti).
Altri suggerimenti
La semplice rimozione di tutte le istanze di URLConnection.setDefaultUseCaches (false) risolverà il problema.
Fare riferimento per maggiori dettagli.
http: // java-junction .blogspot.com / 2009/11 / applet-jar-caching-non-working.html
Solo una soluzione alternativa:
Potresti mettere le tue immagini in un file zip all'interno del vaso, ottenerlo usando un ZipInputStream ed estrarre le immagini da lì.
Quale VM Java usi? E quale server usi?
- C'è un bug nel plugin del browser su Linux.
- Se il server non invia la data modificata, Java non può memorizzare nella cache il file jar.
Se l'applet scarica sempre il jar anche se jar è memorizzato nella cache, assicurati di non aver disabilitato la memorizzazione nella cache di URLConnection
tramite l'API: URLConnection.setUseCaches
e < code> URLConnection.SetDefaultUseCaches .
?? ImageIcon
per recuperare la risorsa è un URLConnection
. Chiamando URLConnection.setDefaultUseCaches (false)
, imposta una parte dello stato statico di tutti i URLConnections
" che fa sì che JRE ignori la cache e scarichi nuovamente l'intero jar ogni volta che accede.
La semplice rimozione di tutte le istanze di setDefaultUseCaches
risolverà il problema.
questo è un repost da: http: //java-junction.blogspot.com/2009/11/applet-jar-caching-not-working.html