Podría ser excepcionalmente genial si JMP permitiría que las cajas de marco tuvieran un tipo de pantalla de muestra y retención.Específicamente, deben representarse una vez y solo volver a representarse para cosas tales como eventos de cambio de tamaño, cambios de estado de fila (para cualquier segmento de marcador que esté vinculado al estado de fila de una tabla) o enviando el mensaje <<
Lo que me gustaría ver es que el siguiente script de ejemplo no imprima ningún número más de una vez mientras se desplaza -- durante el renderizado inicial y eso es todo (esto también se aplicaría a los segmentos de marcador si están presentes).
La razón principal de esto es que si estoy trazando muchos gráficos con millones de puntos de datos, no me importa esperar varios segundos para el renderizado inicial (eso es lo esperado), pero es inaceptable que cada evento de desplazamiento requiera varios segundos de renderizado. -- renderice solo una vez y simplemente vuelva a pintar el mapa de bits en una ubicación diferente al desplazarse.
NOTA: Si los desarrolladores están preocupados por el consumo de memoria al almacenar mapas de bits en RAM, NO SE PREOCUPE.Deje que el usuario se preocupe por eso al configurar las cajas.Por ejemplo, si trato de crear una trama que tendría 1,000,000,000 x 1,000,000,000 píxeles para renderizar, déjame intentarlo y fallar JMP.No debe evitar que tengamos la función necesaria simplemente porque podría permitirnos bloquear JMP en circunstancias estúpidas.Permita que sea solo opcional (es decir, solo llamando al método <
Solo para reiterar, sería genial si un FrameBox tuviera un método (como <
Aquí hay un ejemplo del mal comportamiento actual: los números se imprimen varias veces, lo que indica que el pase de renderizado ocurre en cada evento de desplazamiento:
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 ) )
)
)
) )
)
Este es un ejemplo del tiempo de espera inaceptable asociado con este "reprocesamiento en cada evento de desplazamiento" / "reprocesamiento en cada oportunidad posible" (intente desplazarse hasta aquí...)
Names Default to Here( 1 );
ns = New Namespace();
ns:table = New Table( "TEST",
New Column( "X", "Numeric", <<FORMULA></FORMULA>