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

Da GeoGebra Manual.
 
(9 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
 
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.
 
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.
+
''Punto fondamentale'': testate direttamente l'applet online, non createla offline verificando solo alla fine la compatibilità con la versione online (naturalmente se ad esempio notate una particolare lentezza nell'esecuzione, comunicatelo agli sviluppatori, in modo che possano fare le relative verifiche).  
  
 
==Consigli di carattere generale==
 
==Consigli di carattere generale==
* Evitare quando possibile i comandi che causano il caricamento del motore del CAS, come ad esempio Semplifica[], Fattorizza[], Sviluppa[], Asintoto[]. Il comando Polinomio[] è spesso una valida alternativa a Semplifica[] / Sviluppa[]
+
* Evitare quando possibile i comandi che causano il caricamento del motore del CAS, come ad esempio <code>Semplifica( )</code>, <code>Fattorizza( )</code>, <code>Sviluppa( )</code>, <code>Asintoto( )</code>, oppure <code>f==g</code> per confrontare due funzioni. Il comando <code>Polinomio( )</code> è spesso una valida alternativa a <code>Semplifica( )</code> o <code>Sviluppa( )</code>.
 
* Nascondere tutti gli elementi dell'interfaccia utente che non sono necessari
 
* Nascondere tutti gli elementi dell'interfaccia utente che non sono necessari
 
* Utilizzare stili particolari (tratteggi, immagini di sfondo) solo se necessario
 
* 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
+
* Non posizionare testo nell'applet, se non strettamente necessario -- tenete conto del fatto che sulla ''Piattaforma dei materiali'' di 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
 
* Evitare la visualizzazione di etichette degli oggetti non necessarie
 
* Nascondere griglia e assi se non sono necessari
 
* Nascondere griglia e assi se non sono necessari
Riga 13: Riga 13:
  
 
* Vista Algebra:  
 
* Vista Algebra:  
** Se sono necessarie le descrizioni algebriche di qualche oggetto, creare dei testi dinamici e nascondere la 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
+
** 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==
 
==Consigli per lo scripting==
* Quando è possibile, '''utilizzare script di tipo JavaScript''' invece di script GeoGebraScript
+
* Se possibile evitare di utilizzare scripting (chiedere nel [https://help.geogebra.org Forum] per ulteriori informazioni e aiuto)
* <code><nowiki>ImpValore[a, c + b]</nowiki></code> è '''molto''' più veloce di <code><nowiki>a = c + b</nowiki></code> (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.
+
* In caso sia assolutamente necessario utilizzare degli script, JavaScript è più veloce di GeoGebraScript (ggbApplet.evalCommand() è comunque un comando GeoGebraScript)
* <code><nowiki>ImpValore[a, Se[x < 3, 4, 5]]</nowiki></code> è più efficiente di <code><nowiki>Se[x < 3,ImpValore[a, 4], ImpValore[a, 5]]</nowiki></code>
+
* <code><nowiki>ImpValore(a, c + b)</nowiki></code> è '''molto''' più veloce di <code><nowiki>a = c + b</nowiki></code> (in questo modo si evita il ricalcolo di tutta la costruzione) ma <code>ggbApplet.setValue()</code> è comunque l'assegnazione più veloce, perché necessita di minore analisi interna.
 
+
* <code><nowiki>ImpValore(a, Se(b < 3, 4, 5))</nowiki></code> è più efficiente di <code><nowiki>Se(b < 3,ImpValore(a, 4), ImpValore(a, 5))</nowiki></code>
==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==
 
==Animazioni==
Nelle animazioni multi-fase, conviene costruire oggetti distinti gestiti da slider distinti, invece di un solo singolo oggetto gestito da un singolo slider.
+
Nelle animazioni multi-fase, conviene costruire oggetti distinti gestiti da slider distinti, invece di un singolo oggetto finale gestito da un solo 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
 
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==
 
==LaTeX==
 +
L'ideale è utilizzare i comandi [[comando TabellaTesto|TabellaTesto]] e [[comando LaTeX|LaTeX]]: è comunque possibile utilizzare la sintassi nativa LaTeX se necessario.
  
L'ideale è utilizzare i comandi [[comando TabellaTesto|TabellaTesto]] e [[comando LaTeX|LaTeX]], comunque in generale il LaTeX di base viene visualizzato correttamente in HTML5:  http://www.geogebra.org/student/m33487?mobile=true
 
 
Per ulteriori informazioni fare riferimento a questo [http://forum.geogebra.org/viewtopic.php?f=10&t=33463 thread su LaTeX] nel Forum.
 
  
 
==Immagini==
 
==Immagini==
*Non utilizzare immagini ad alta risoluzione quando non è necessario (specialmente nel comando Successione). Sono disponibili vari software tipo http://www.irfanview.com/ per abbassare la risoluzione delle immagini
+
*Non utilizzare immagini ad alta risoluzione quando non è necessario (specialmente nel comando <code>Successione( )</code>). Sono disponibili vari software tipo http://www.irfanview.com/ per abbassare la risoluzione delle immagini
 +
*https://jakearchibald.github.io/svgomg/ riduce le dimensioni dei file SVG in modo molto efficace
 
*https://tinypng.com/ riduce le dimensioni dei file PNG in modo molto efficace (tipicamente dell'80-90%)
 
*https://tinypng.com/ riduce le dimensioni dei file PNG in modo molto efficace (tipicamente dell'80-90%)
 
[[en:Tutorial:Responsive_Applets]]
 
[[es:Tutorial:Creando Applets]]
 
[[fr:Tutoriel:Appliquettes_réactives]]
 

Versione attuale delle 09:20, 19 mar 2020

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 online, non createla offline verificando solo alla fine la compatibilità con la versione online (naturalmente se ad esempio notate una particolare lentezza nell'esecuzione, comunicatelo agli sviluppatori, in modo che possano fare le relative verifiche).

Consigli di carattere generale

  • Evitare quando possibile i comandi che causano il caricamento del motore del CAS, come ad esempio Semplifica( ), Fattorizza( ), Sviluppa( ), Asintoto( ), oppure f==g per confrontare due funzioni. Il comando Polinomio( ) è spesso una valida alternativa a Semplifica( ) o Sviluppa( ).
  • 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 sulla Piattaforma dei materiali di 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

  • Se possibile evitare di utilizzare scripting (chiedere nel Forum per ulteriori informazioni e aiuto)
  • In caso sia assolutamente necessario utilizzare degli script, JavaScript è più veloce di GeoGebraScript (ggbApplet.evalCommand() è comunque un comando GeoGebraScript)
  • 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(b < 3, 4, 5)) è più efficiente di Se(b < 3,ImpValore(a, 4), ImpValore(a, 5))

Animazioni

Nelle animazioni multi-fase, conviene costruire oggetti distinti gestiti da slider distinti, invece di un singolo oggetto finale gestito da un solo 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 possibile utilizzare la sintassi nativa LaTeX se necessario.


Immagini

© 2024 International GeoGebra Institute