Ho proposto che JMP gestisca gli elementi di visualizzazione allo stesso modo di ogni altro framework della GUI: non ridisegnare alcun elemento a meno che i contenuti non siano stati modificati o non venga invocato un metodo di rielaborazione (o inval) specifico.
In particolare, può lì per favore essere un modo per impedire ai framebox di ridisegnare il contenuto (questo include ridisegnare tutti i punti dati e rieseguire qualsiasi script allegato) ogni volta che si scorre una finestra?Come sul serio, disegna una volta e mantieni la bitmap (o pixmap) persistente a meno che la casella non sia stata modificata (cambio dimensione / cambio dt RowState / metodo inval)
Questo è un follemente estremo la produttività uccide quando si scorrono grafici che hanno molte migliaia di punti o script complessi allegati.L'attuale metodo di "ridisegnare ogni possibile opportunità, qualunque cosa accada" è estremamente sconcertante.
Ecco un esempio: lo script allegato viene semplicemente stampato sul registro, ma lo scorrimento dei grafici mostra come è costantemente in esecuzione ogni volta che la casella di scorrimento si aggiorna (non propagare il metodo <
New Window( "Test",
vlb = V List Box()
);
::global function = Function( {},
Print( 1 );
);
For( i = 1, i <= 20, i++,
vlb << Append(
Graph Box(
Frame Size( 200, 200 ),
X Scale( -100, 100 ),
Y Scale( -100, 100 ),
::global function
)
)
)