j'ai une page qui sélectionne tous les éléments sous une forme et les sérialise comme ceci:éléments filtrant d'un sélecteur jQuery
var filter = 'form :not([name^=ww],[id$=IDF] *,.tools *)';
var serialized = $(filter).serialize();
Cela fonctionne, à moins que le formulaire est autour 600+ éléments. Ensuite, l'utilisateur reçoit une erreur javascript disant que le script est lent et peut rendre leurs navigateurs ne répond pas. Il leur donne ensuite la possibilité d'arrêter l'exécution du script.
J'ai essayé d'exécuter les filtres séparément, j'ai essayé d'utiliser .not sur les sélecteurs, puis les sérialiser, mais je rencontre l'un des deux problèmes. Soit il s'exécute plus vite sans l'erreur, mais aussi ne filtre pas les éléments, ou il filtre les éléments et me donne l'erreur de script lente.
Des idées?
* pourquoi, oh pourquoi * auriez-vous plus de 600 éléments d'entrée sous une forme en html!?!? –
votre problème n'est pas le sélecteur. repensez votre page afin qu'elle utilise moins de champs de saisie. redessinez votre logique afin qu'elle n'ait pas besoin de sérialiser des centaines d'éléments dans un script. –
ayant moins de champs d'entrée n'est pas une option. Je ne peux pas entrer dans trop de détails, mais c'est par conception –