Differenze tra le versioni di "Tutorial:Progettare applet efficienti"

Da GeoGebra Manual.
Riga 17: Riga 17:
 
==Consigli per lo scripting==
 
==Consigli per lo scripting==
 
* ImpValore[a, c + b] è '''molto''' più veloce di ''a'' = ''c'' + ''b'' (in questo modo si evita il ricalcolo di tutta la costruzione) ma ggbApplet.setValue() è comunque l'assegnazione più veloce, perchè necessita di minore analisi interna.
 
* ImpValore[a, c + b] è '''molto''' più veloce di ''a'' = ''c'' + ''b'' (in questo modo si evita il ricalcolo di tutta la costruzione) ma ggbApplet.setValue() è comunque l'assegnazione più veloce, perchè necessita di minore analisi interna.
* SetValue[a, If[x<3,4,5]] is better than If[x<3,SetValue[a,4],SetValue[a,5]]
+
* ImpValore[a, Se[x < 3, 4, 5]] è meglio di Se[x < 3,ImpValore[a, 4], ImpValore[a, 5]]
  
==Lists==
+
==Liste==
The Sequence[ ] and Zip[] commands are currently quite slow in some cases. The team is working on some ideas to speed this up, in the meantime it’s worth trying out the spreadsheet for building sequences, and using “Conditon to Show Object” to simulate Sequence[ ]
+
I comandi Successione[ ] e Compatta[] possono risultare in alcuni casi molto lenti. Il Team sta lavorando sul miglioramento delle prestazioni di questi comandi, ma nel frattempo vale la pena di considerare l'utilizzo del ''Foglio di calcolo'' per generare successioni, e utilizzare la “Condizione per mostrare l'oggetto” per simulare il comando Successione[ ]
  
==Animations==
+
==Animazioni==
If you have a multi-step animation, build it as separate objects driven by separate sliders, not as one big object driven by one slider
+
Nelle animazioni multi-fase, conviene costruire oggetti distinti gestiti da slider distinti, invece di un solo singolo oggetto gestito da un singolo slider.
  
Here’s an example of an efficent way to solve ODEs (by using a variable slider speed) which is much quicker than using scripts/on update events.
+
Ecco un esempio efficiente per la soluzione di EDO (utilizzando uno slider a velocità variabile) che è decisamente più veloce rispetto all'utilizzo di script o eventi del tipo ''All'aggiornamento'': http://www.geogebra.org/student/m23587
http://www.geogebra.org/student/m23587
 
  
 
==LaTeX==
 
==LaTeX==
  
Best to use the [[TableText Command]] & [[FormulaText Command]] but basic LaTeX also works well in HTML5:
+
L'ideale è utilizzare i comandi [[comando TabellaTesto|TabellaTesto]] e [[comando LaTeX|LaTeX]], comunque in linea di massima il LaTeX di base viene visualizzato correttamente in HTML5: http://www.geogebra.org/student/m33487?mobile=true
http://www.geogebra.org/student/m33487?mobile=true
 
  
==Images==
+
==Immagine==
Make sure you’re not using hi-res images when a smaller one would do (especially in Sequence commands)
+
Non utilizzare immagini ad alta risoluzione quando non è necessario (specialmente nel comando Successione)
  
 
[[en:Tutorial:Responsive_Applets]]
 
[[en:Tutorial:Responsive_Applets]]

Versione delle 19:00, 12 lug 2013

Quando si progetta un'applet di GeoGebra è importante assicurarsi che funzioni bene su qualsiasi supporto. Questo articolo offre qualche consiglio che può aiutarvi a creare applet performanti e visualizzate correttamente.

Punto fondamentale: testate direttamente l'applet in HTML5, non createla in Java e verificate solo alla fine la compatibilità con HTML5 (naturalmente se ad esempio notate una particolare lentezza nell'esecuzione, comunicatelo agli sviluppatori, in modo che possano fare le loro verifiche in merito). Al momento HTML5 è in linea di massima più lento di una esecuzione Java sullo stesso hardware.

Consigli di carattere generale

  • Nascondere tutti gli elementi dell'interfaccia utente che non sono necessari
  • Utilizzare stili particolari (tratteggi, immagini di sfondo) solo se necessario
  • Non posizionare testo nell'applet, se non strettamente necessario -- tenete conto del fatto che su GeoGebra è possibile inserire le istruzioni relative all'utilizzo del foglio di lavoro sia sopra che sotto l'applet
  • Evitare la visualizzazione di etichette degli oggetti non necessarie
  • Nascondere griglia e assi se non sono necessari
  • Se un determinato valore calcolato è utilizzato più volte nell'applet, conviene assegnarlo a una variabile e utilizzare al suo posto il nome della variabile
  • Vista Algebra:
    • Se sono necessarie le descrizioni algebriche di qualche oggetto, creare dei testi dinamici e nascondere la Vista Algebra
    • Per ridurre ulteriormente il tempo necessario all'aggiornamento dei valori visualizzati nella Vista Algebra, comprimere le categorie degli oggetti (ad esempio impostare la Vista Algebra ordinata per tipo di oggetto e comprimere tutte le liste) oppure contrassegnare gli oggetti come ausiliari

Consigli per lo scripting

  • ImpValore[a, c + b] è molto più veloce di a = c + b (in questo modo si evita il ricalcolo di tutta la costruzione) ma ggbApplet.setValue() è comunque l'assegnazione più veloce, perchè necessita di minore analisi interna.
  • ImpValore[a, Se[x < 3, 4, 5]] è meglio di Se[x < 3,ImpValore[a, 4], ImpValore[a, 5]]

Liste

I comandi Successione[ ] e Compatta[] possono risultare in alcuni casi molto lenti. Il Team sta lavorando sul miglioramento delle prestazioni di questi comandi, ma nel frattempo vale la pena di considerare l'utilizzo del Foglio di calcolo per generare successioni, e utilizzare la “Condizione per mostrare l'oggetto” per simulare il comando Successione[ ]

Animazioni

Nelle animazioni multi-fase, conviene costruire oggetti distinti gestiti da slider distinti, invece di un solo singolo oggetto gestito da un singolo slider.

Ecco un esempio efficiente per la soluzione di EDO (utilizzando uno slider a velocità variabile) che è decisamente più veloce rispetto all'utilizzo di script o eventi del tipo All'aggiornamento: http://www.geogebra.org/student/m23587

LaTeX

L'ideale è utilizzare i comandi TabellaTesto e LaTeX, comunque in linea di massima il LaTeX di base viene visualizzato correttamente in HTML5: http://www.geogebra.org/student/m33487?mobile=true

Immagine

Non utilizzare immagini ad alta risoluzione quando non è necessario (specialmente nel comando Successione)

en:Tutorial:Responsive_Applets

© 2024 International GeoGebra Institute