Tutorial:Progettare applet efficienti

Da GeoGebra Manual.

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.
  • SetValue[a, If[x<3,4,5]] is better than If[x<3,SetValue[a,4],SetValue[a,5]]

Lists

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[ ]

Animations

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

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. http://www.geogebra.org/student/m23587

LaTeX

Best to use the TableText Command & FormulaText Command but basic LaTeX also works well in HTML5: http://www.geogebra.org/student/m33487?mobile=true

Images

Make sure you’re not using hi-res images when a smaller one would do (especially in Sequence commands)

en:Tutorial:Responsive_Applets

© 2024 International GeoGebra Institute