Sarebbe eccezionalmente fantastico se JMP consentisse ai riquadri dei frame di avere un tipo di visualizzazione sample-and-hold. In particolare, dovrebbero essere renderizzati una volta e ri-renderizzati solo per cose come eventi di ridimensionamento, modifiche dello stato di riga (per qualsiasi segmento di marcatore collegato allo stato di riga di una tabella) o inviando il < <<>
Ciò che vorrei vedere è che lo script di esempio qui sotto non stampi alcun numero più di una volta durante lo scorrimento , durante il rendering iniziale e basta (ciò si applicherebbe anche ai segmenti dei marcatori, se presenti).
Il motivo principale è che se sto tracciando molti grafici con milioni di punti dati, non mi dispiace aspettare diversi secondi per il rendering iniziale (come previsto), ma è inaccettabile che ogni evento di scorrimento richieda diversi secondi di rendering: eseguire il rendering una sola volta e ridisegnare semplicemente la bitmap in una posizione diversa durante lo scorrimento.
NOTA: se gli sviluppatori sono preoccupati per il consumo di memoria dovuto al mantenimento delle bitmap nella RAM, NON PREOCCUPARTI. Lascia che sia l'utente a preoccuparsene quando imposta le caselle. Ad esempio, se provo a creare un grafico che sarebbe di 1.000.000.000 x 1.000.000.000 pixel da rendere, allora lasciami provare e mandare in crash JMP. Non dovresti impedirci di avere la funzionalità necessaria semplicemente perché potrebbe permetterci di mandare in crash JMP in circostanze stupide. Lascia che sia solo opt-in (vale a dire, solo chiamando <
Solo per ribadire, sarebbe fantastico se un FrameBox avesse un metodo (come <
Ecco un esempio del comportamento scorretto attuale: i numeri vengono stampati più volte, a indicare che il rendering viene eseguito a 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 dell'inaccettabile tempo di attesa associato a questo "re-render-at-every-scroll-event" / "re-render a ogni possibile opportunità" (provate a scorrere qui...)
Names Default to Here( 1 );
ns = New Namespace();
ns:table = New Table( "TEST",
New Column( "X", "Numeric", <<FORMULA></FORMULA>
<P> </P>
<P> </P>
<P> </P>Ciao @ErraticAttack , Grazie per il tuo suggerimento! Abbiamo catturato la tua richiesta e la prenderemo in considerazione.
ottimo esempio.
Ottimo: JMP sa quali framebox sono visibili e salta gli altri.