Jeg har lavet en applet som ved hjælp af JfreeChart kan vise nogle grafer.
Første gang jeg besøger siden hvor appleten ligger på så tager det meget lang tid at generere grafen (ca. 1-2min og grafen består af ca. 20punkter). Herefter går det hurtigere. Jeg har fundet ud af at det er fordi at første gang siden besøges så er der en masse klasser fra jfreechart som skal downloades. Men det ville nu være rart hvis de blev downloadet når man kommer til siden, så der istedet var en startup tid.
Udover JavaLibrary2.jar liger der også et par andre jar filer herunder jfreechart.jar
Kort sagt hvordan kan jeg få min applet til at loade de nødvendige filer fra jfreechart.jar så snart jeg loader appleten, istedet for først at gøre det når grafen laves?
Det er jo ikke samtlige klasser fra jfreechart.jar som skal bruges. Det er kun omkring 100 klasser. Hvordan kan jeg loade netop disse klasser i starten?
Er jeg nød til at indlæse resten af klasserne på samme måde?
Altså ved at oprette nogle "dummy" objekter i init() metoden som altså tvinger alle de nødvendige klasser i jfreechart til at blive loaded ved opstarten
Problemet er kun første gang man vil se applet'en. Altså fra en computer som ikke har været på siden før. Så indlæser den kun da klasser som bruges i init() metoden. Men jeg har brug for mange flere klasser senere i appleten. Disse klasser kunne jeg godt tænke mig blive indlæst i starten også, altså i init metoden.
Men spørgsmålet er om jeg er nød til at lave disse dummy objekter:
org.jfree.data.xy.XYSeriesCollection justToLoadClass = new org.jfree.data.xy.XYSeriesCollection();
Som altså kun bruges til at hente klasserne der er afhængige af XYSeriesCollection()
Håber jeg har udtrykt mig klarere denne gang :-S ?
Men jeg kan se at når jeg generer min graf så står den og henter en masse klasser førend grafen vises. Dette er selvfølgelig nødvendige klasser.
Men jeg kunne godt tænke mig at alle disse klaser blev hentet i init metoden istedet for at det først sker når man generer grafen.
For netop dette program virker det nemlig mere naturligt med en lang startup tid, end at man skal vente midt lang tid midt i programmet (når grafen genereres).
Men jeg tror at årsagen til at den henter klasserne enkeltvis er fordi de også ligger i mappen enkeltvis. Altså udover i jar filen. Så hvis jeg sletter disse klasser vil den nok bare hente jar filen. Og så har man jo netop hentet alle klasser som du siger Arne.
Men kan man lave sine egen modificeret jfreechart jar fil, som netop kun indeholder de klasser der skal bruges fra jfreechart?
Du kan godt udpakke en jar, fjerne nogle class file og pakke en ny jar af resultatet.
Men spørgsmålet er om det er umagen værd.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.