J'ai une question très générale de bas niveau sur le glisser. Je suis particulièrement intéressé par l'apprentissage de ce qui détermine exactement quand un événement glisser est déclenché dans D3.js v4. Par exemple, si je déplace très lentement un objet déplacé, un événement de déplacement déclenchera chaque pixel que je déplace. Cependant, si je me déplace assez rapidement, l'événement de déplacement n'est pas déclenché dans une corrélation un-à-un avec la quantité de pixels que j'ai déplacés.À quelle fréquence l'événement de traînée D3 est-il déclenché?
Je suis actuellement à la recherche de ce problème, principalement avec l'onglet Performances de Chrome Dev; Je pense que cela va (espérons-le) me donner un aperçu. Je suis également conscient qu'il existe des fonctions anti-rebond qui peuvent limiter le nombre de fois qu'un événement est appelé; Cependant, je ne sais pas ou je vois que D3 a ceci. Je pense que la raison de la diminution des appels à faire glisser a quelque chose à voir avec quelque chose d'intérieur peut-être dans Chrome et qu'il utilise peut-être un algorithme pour appeler drag en fonction de la vitesse de déplacement de la souris. Cela semble être la réponse la plus probable, mais si quelqu'un peut me donner un aperçu de la façon dont ce comportement est déterminé, je serais très reconnaissant. Une dernière chose: je suis également conscient que parfois lorsque vous déplacez le curseur de la souris si rapidement qu'il «sort» de l'objet que vous faites glisser, l'événement de déplacement ne doit pas être appelé. Cependant, même si je ne «quitte» pas l'objet que je suis en train de faire glisser, il y a encore moins d'appels à faire glisser en fonction de la rapidité avec laquelle je déplace le curseur de la souris.
p.s. alors que j'utilise D3, ce problème peut très bien être lié au fait de glisser en général et ne pas être spécifique à D3 ...
Merci beaucoup pour votre réponse rapide.Ce que vous avez dit est à peu près ce que je soupçonnais; J'ai aussi fait un test similaire à celui de votre code (merci pour ça aussi). C'est gentil de confirmer que c'est une chose contrôlée par le navigateur et pas quelque chose comme un événement supprimé ou une sorte d'opération de minuterie de type asynchrone ... ou une fonction (sans jeu de mots) de la bibliothèque D3. – user2403232
Eh bien, je suppose que cela aurait aussi aidé pour moi à regarder W3. Selon eux (dans la section 5.7.5 Drag and Drop Processing Model), l'événement de traînée est déclenché toutes les 350 ms ... il y a plus d'informations par la suite; longue histoire court il répond définitivement à ma question. Merci encore. https://www.w3.org/TR/2016/REC-html51-20161101/editing.html#drag-and-drop-processing-model – user2403232