Sarebbe eccezionalmente grande se JMP consente alle caselle cornice di avere un tipo di visualizzazione "campiona e mantieni".In particolare, dovrebbero essere renderizzati una volta e renderizzati nuovamente solo per cose come ridimensionare eventi, modifiche allo stato della riga (per qualsiasi segmento di marker collegato allo stato della riga di una tabella) o inviando il messaggio <<
Quello che mi piacerebbe vedere è che lo script di esempio seguente non stampi alcun numero più di una volta durante lo scorrimento -- durante il rendering iniziale e il gioco è fatto (questo si applicherebbe anche ai marker seg se presenti).
Il motivo principale di ciò è che se sto tracciando molti grafici con milioni di punti dati, non mi dispiace aspettare diversi secondi per il rendering iniziale (che è previsto) ma è inaccettabile che ogni evento di scorrimento richieda più secondi di rendering -- esegue il rendering solo una volta e ridipinge la bitmap in una posizione diversa durante lo scorrimento.
NOTA: se gli sviluppatori sono preoccupati per il consumo di memoria dovuto alla memorizzazione di bitmap nella ram, NON PREOCCUPARTI.Lascia che l'utente se ne preoccupi durante l'impostazione delle scatole.Ad esempio, se provo a creare una trama che dovrebbe essere 1.000.000.000 x 1.000.000.000 di pixel per il rendering, lasciami provare e mandare in crash JMP.Non dovresti impedirci di avere la funzionalità necessaria semplicemente per il motivo che potrebbe permetterci di mandare in crash JMP in circostanze stupide.Consenti solo l'attivazione (ad esempio, solo chiamando il metodo <
Giusto per ribadire, sarebbe fantastico se un FrameBox avesse un metodo (come <
Ecco un esempio del cattivo comportamento attualmente: i numeri vengono stampati più volte indicando che il passaggio di rendering si verifica ad ogni evento di scorrimento:
Names Default to Here( 1 );
New Window( "Test",
V Scroll Box(
vlb = V List Box()
)
);
For( i = 1, i <= 100, i++,
Eval( Eval Expr(
vlb << Append(
Graph Box(
X Scale( 0, 1 ),
Y Scale( 0, 1 ),
Pen Color( "Blue" );
Line( [1 0], [0 1] );
Print( Expr( i ) )
)
)
) )
)
Ecco un esempio del tempo di attesa inaccettabile associato a questo "re-rendering-at-every-scroll-event" / "re-rendering ad ogni possibile opportunità" (prova a scorrere qui...)
Names Default to Here( 1 );
ns = New Namespace();
ns:table = New Table( "TEST",
New Column( "X", "Numeric", <<FORMULA></FORMULA>