J'ai essayé d'utiliser différents gestionnaires d'état fournis par JMP, mais plus je les utilise, plus je remarque des problèmes avec eux. Il y a de nombreuses raisons pour lesquelles j’aimerais les utiliser et peut-être encore plus de raisons pour moi de les éviter. Le plus gros problème est généralement qu'ils semblent se déclencher trop de fois et que la valeur renvoyée n'est pas très utile.
Subscribe To Data Table List() est un assez bon exemple de la façon dont la plupart d'entre eux devraient fonctionner. Vous pouvez ajouter différentes fonctions à différents événements (c'est parfois compliqué). Vous pouvez imaginer à quel point Subscribe To Data Table List() fonctionnerait s'il se déclenchait à chaque fois que quelque chose arrive à la liste des tables de données (ajouter, supprimer, renommer) et qu'il renverrait uniquement le nom de la table de données par exemple (ou le nombre de tables de données modifiées). ...) Et rien de plus.
Vous trouverez ci-dessous quelques problèmes et suggestions :
Étiquette de survol
Problème
Semble se déclencher lorsque vous vous rapprochez du point que vous souhaitez survoler. Cela provoque plusieurs déclenchements et ralentit JMP inutilement et parfois ce ralentissement est assez important. Se déclenche également immédiatement lorsque vous survolez le point -> si vous déplacez rapidement la souris sur plusieurs éléments, cela se déclenchera plusieurs fois. Se déclenche également plusieurs fois lors du survol (pourrait être lié à toutes les choses mentionnées précédemment)
Suggestions
Rendez-le plus précis lorsque l'étiquette de survol se déclenche. Ajoutez la possibilité de "retarder" le moment où déclencher l'événement, par exemple, j'aimerais pouvoir déclencher une étiquette de survol après que l'utilisateur a survolé le même élément pendant 0,2 s. Autorisez également la sélection d'une "zone de sécurité" pour déterminer quand l'étiquette de survol doit même se déclencher.
Gestionnaire d’état de ligne
Problème
Déclenche trop de fois et tous les événements. Il y a un bug où vous supprimez une ligne, le gestionnaire d'état de ligne semble être supprimé.
Suggestions
Ce serait très probablement suffisant s'il existait un moyen de capturer uniquement les changements d'état de ligne spécifiques (et de corriger le bogue).
Gestionnaire d’état de filtre
Problème
Se déclenche trop de fois. Un exemple est que si vous regardez même le filtre, le gestionnaire d'état se déclenchera.
Suggestions
Supprimez les déclencheurs inutiles du gestionnaire d’état de filtre ou donnez la possibilité de choisir quels états doivent déclencher quelle fonction.
Planificateur
Problème
Vous ne pouvez avoir qu'un seul planificateur à la fois et vous ne pouvez pas masquer la fenêtre du planificateur.
Suggestions
Autoriser la création de planificateurs privés (actuellement, je cache la fenêtre et j'espère que l'utilisateur ne la fermera pas) et de plusieurs planificateurs différents en même temps.
Je crains qu'un retard pour le label Hover ne lui donne l'impression d'être "en retard".
Il existe de bons exemples sur le net à quel point une étiquette survolée « en direct » peut être excitante :
https://wid.world/world/#lpfghg_p90p100_z/US;FR;DE;CN;ZA;GB;WO/2020/eu/k/p/yearly/l/false/3.516/100/curve/false/country

peut-être:
ne le faites pas mettre à jour le contenu s'il est exactement le même qu'avant ?
juste:
placez l'étiquette Hover existante à la nouvelle position .
@xxvvcczz , les développeurs ont étudié d'éventuels changements à Créer un gestionnaire RowState et Créer un gestionnaire de changement de filtre . Aucune mise à jour à partager pour le moment.
Des mises à jour à ce sujet ? Cela fait quelques mois maintenant.
S'il vous plaît, veuillez corriger le gestionnaire d'état de ligne.
Je souhaite récupérer les événements de sélection en levant la souris et envoyer une requête http pour obtenir des données pour l'utilisateur, mais pour le moment, c'est incroyablement lent et difficile. Je suis allé jusqu'à réécrire l'intégralité de l'outil de sélection comme une souricière pour essayer d'obtenir cette fonctionnalité, je veux juste que le gestionnaire d'état de ligne se déclenche une fois à la fin de l'événement de sélection.
https://community.jmp.com/t5/Discussions/Is-there-a-way-to-make-the-rowstate-handler-less-laggy/mp/550590
Merci d'avoir soumis cette liste et de nous avoir fait part de vos suggestions. Nous menons actuellement une enquête.
@jthi D'accord, le planificateur est difficile à bien utiliser. Dans Fil d'actualité J'ai déplacé l'objet planificateur hors de la fenêtre qu'il crée dans ma propre fenêtre, mais cela ne résout pas le problème du singleton. (Utility.jsl lignes 53-64. Utilisé à partir de la ligne 120 de httpServer.jsl.) Je soupçonne qu'il n'a pas du tout besoin d'être dans une fenêtre une fois supprimé ; il vous suffit probablement de garder la poignée. Dans FileSnapper J'ai utilisé une approche Windows uniquement avec runprogram et certaines commandes DOS. J'aurais préféré utiliser le planificateur, sauf pour le problème du singleton. Ne faites pas cela car {Windows uniquement, non évolutif, a encore des effets secondaires}. Dans les deux cas, le JSL ne s'exécute que lorsque JMP est inactif, peut-être pendant un wait().