Ce serait exceptionnellement grand si JMP autorisait les boîtes de cadre à avoir un type d'affichage échantillon-blocage.Plus précisément, ils doivent être restitués une seule fois et uniquement pour des éléments tels que les événements de redimensionnement, les changements d'état de ligne (pour tout segment de marqueur lié à l'état de ligne d'une table) ou en envoyant le message <<
Ce que j'aimerais voir, c'est que l'exemple de script ci-dessous n'imprime aucun numéro plus d'une fois pendant le défilement -- pendant le rendu initial et c'est tout (cela s'appliquerait également aux segments de marqueur s'ils sont présents).
La raison principale en est que si je trace de nombreux graphiques avec des millions de points de données, cela ne me dérange pas d'attendre plusieurs secondes pour le rendu initial (ce qui est attendu) mais il est inacceptable que chaque événement de défilement nécessite plusieurs secondes de rendu -- rendre une seule fois et simplement repeindre le bitmap à un emplacement différent lors du défilement.
REMARQUE : Si les développeurs s'inquiètent de la consommation de mémoire liée à la conservation des bitmaps dans la RAM, NE VOUS INQUIÉTEZ PAS.Laissez l'utilisateur s'en soucier lors de la configuration des boîtes.Par exemple, si j'essaie de créer un tracé qui serait de 1 000 000 000 x 1 000 000 000 pixels à rendre, laissez-moi essayer et planter JMP.Vous ne devriez pas nous empêcher d'avoir la fonctionnalité nécessaire simplement parce que cela pourrait nous permettre de planter JMP dans des circonstances stupides.Permettez-lui d'être opt-in uniquement (c'est-à-dire que ce n'est qu'en appelant la méthode <
Juste pour réitérer, ce serait formidable si un FrameBox avait une méthode (telle que <
Voici un exemple du mauvais comportement actuel -- les nombres sont imprimés plusieurs fois indiquant que la passe de rendu se produit à chaque événement de défilement :
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 ) )
)
)
) )
)
Voici un exemple du temps d'attente inacceptable associé à cet événement "re-render-at-every-scroll-event" / "re-render-at-every-scroll-event" / "re-render-at-every-scroll-event" / "re-render-at-every-scroll-event" / "re-render-at-every-scroll-event" (essayez simplement de faire défiler ici ...)
Names Default to Here( 1 );
ns = New Namespace();
ns:table = New Table( "TEST",
New Column( "X", "Numeric", <<FORMULA></FORMULA>