Je construis un calendrier de traînée et de dépose et j'ai constaté que JQuery Ui's Soyable offre les meilleures performances en direct pour ce que j'essaie de faire.
Cependant, appliquer une sorte de plusieurs mois de jours (60 à 180 Les jours à la fois - parfois plus) entraîne un décalage notable lors de la charge de la page car mon script applique toutes ces instances triables. Cela fonctionne bien une fois qu'il est chargé, mais je préfère ne pas avoir le décalage initial. Dans certains cas, le navigateur tente même de tuer le script. P>
J'ai essayé de faire le premier jour du calendrier triable, puis d'utiliser JQuery's .clone () à copier à tous les autres jours, mais malheureusement, JQuery's .cLone () Ne semble pas copier les événements de .Sortable. D'autres événements (tels que clic, double-clic, etc.) sont copiés bien, mais pas triables. Faire des recherches en ligne, tout ce que je pouvais trouver, c'est la déclaration que JQuery "ne prend pas en charge le clonage des plugins." P>
Y a-t-il une meilleure façon de le faire? J'ai fouillé Stackoverflow, les forums de Jquery Ui et Google en général, et n'ont rien trouvé de l'aide. P>
Merci d'avance, JAMON P>
EDIT: Voici un code. Rien de trop spécial. P> Le balisage ressemble à ceci: p> <table>
<tbody>
<tr>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
</tr>
<tr>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
<td><ul class="milestone-day"></ul></td>
</tr>
...
</tbody>
</table>
5 Réponses :
Déplacez votre code pour lier toutes les commandes de l'événement de la page. Ce ne sera pas plus rapide mais il semblera plus vite à l'utilisateur. Vous pouvez également modifier le code et le marquage afin que les éléments individuels soient désactivés sur la charge. et après que leurs événements soient liés, ils sont activés. Cela empêchera la contraction rapide utilisateurs de cliquer sur eux et de vous demander pourquoi rien ne s'est passé. p>
Merci pour la réponse, Jay. Vous suggérez-vous de mettre le code JQuery dans l'événement $ (document) .Ready ()? En fait, il est déjà, de sorte que le document se charge puis "gèle" alors que les tri initialisés sont initialisés. L'utilisateur n'est pas en mesure de cliquer sur quoi que ce soit pendant que cela se produit. Si j'ai le temps de poster une démo de travail.
Appelez la Connectewith après avoir appelé le tri (), exemple: Pour une raison quelconque, il améliore beaucoup les performances de mon scénario (des milliers d'éléments) P> P> P >
Cela améliore la performance une tonne! C'est être très buggy pour moi, mais je ne peux pas sembler l'obtenir pour travailler tout à fait raison. Comme les éléments "abandonner" quand j'essaye de les traîner parfois.
C'est un bug que je suppose que j'ai essayé de connecter la connexion à l'intérieur de la sorte () et il se bloque et gèle autour. Lorsque vous le faites comme si vous avez suggéré, il est rapide sans gel ...
Essayez de ne pas lier tous les éléments surcharger faire quelque chose comme ça Cela améliorera la performance p> démo: http://jsfiddle.net/p27qv/ p> p>
HM, c'est une approche intéressante. Je vais jouer avec ça et voir si cela fonctionne.
J'ai pu en faire beaucoup plus vite si je cache les morts avant d'appeler .Sortable (). Mais cela n'a fait qu'une énorme différence sur le safari iPad. Pour les autres navigateurs, c'était à peu près la même chose.
Exemple de code: p>
J'ai eu un problème similaire avec des centaines d'images qui devaient être glagibles. et l'initialisation a juste pris trop de temps p>
J'ai pu le résoudre par une instanciation paresseuse sur Sousener, cela fonctionne bien et l'expérience utilisateur n'est pas modifiée p>
Voir plus d'informations ici https://stackoverflow.com/a/20399896/287455 p>
Pouvez-vous poster du code afin que nous puissions vous aider à l'optimiser?
Merci pour la réponse, tim. Posté le code ci-dessus. Il y a généralement 120 ou plusieurs étiquettes ul-ultruttes «jalon-journée», donc le $ («. Milestone-day») Objets JQuery Obtenir .Sortable () appliqué plusieurs fois.
Stacpoverflowflowflowflowflow? N'a pas pensé que c'était possible. :)