Bootstrap-multiselect: atuação

Criado em 19 mai. 2013  ·  8Comentários  ·  Fonte: davidstutz/bootstrap-multiselect

Existem alguns problemas de desempenho com bootstrap-multiselect quando você tem muitas opções.

O método de atualização, por exemplo, que precisa combinar as opções com li de uma forma ineficiente, mas simples.

Não tenho nenhuma solução concreta a esta hora tardia de domingo, mas vamos tentar discutir algumas soluções possíveis.

Uma maneira poderia ser construir estruturas de dados internas para que não precisemos verificar o dom de cada item o tempo todo, o que é demorado.

Também poderíamos ver como o escolhido ou select2 lida com o desempenho.

Meu primeiro pensamento é que poderíamos usar o índice passado para .each porque deve haver a mesma quantidade de opções que os elementos li, exceto para aqueles adicionados por multiselect (filtragem), se pudermos usar o índice, podemos fazer aumentos de desempenho iniciais rápidos ($ ('opção', this.select) [índice])

Obrigado por criar bootstrap-multiselect!

enhancement

Comentários muito úteis

olá David
Eu usei bootstrap multiselect com SelectAllOption.
há 148 itens de lista na lista suspensa.
está funcionando tão devagar.
Você tem alguma solução para este problema.

Todos 8 comentários

As descobertas iniciais mostram que $ foo.multiselect ('rebuild') é muito mais rápido do que $ foo ('refresh'), talvez para "selecionar tudo" possamos apenas alternar as opções de seleção e reconstruir o menu suspenso para torná-lo mais rápido?

Sim, com grandes listas de opções que estamos executando em problemas de desempenho de qualquer maneira. Mas antes de resolver este problema, temos que tornar o plugin um pouco mais modular. Causada por muitas contribuições (não me entendam mal, contribuir é muito bom!) A complexidade aumentou a um ponto em que estender o plugin se tornou realmente difícil.

Portanto, atualmente estou tentando obter uma estrutura modular e proponho discutir a eficiência com a nova estrutura.

Parece uma abordagem legítima e razoável! Obrigado pela sua atualização!

provavelmente usaremos esse componente para um novo aplicativo da web, mas provavelmente teremos listas grandes.
a partir de qual número de itens você define uma lista como uma lista grande?
então, a partir de qual número de itens o desempenho está começando a ser um problema?
100/1000/10000?

qual é o planejamento para a nova estrutura?

Obrigado pela resposta!

Sem usar a opção "selecionar tudo", o desempenho não deve ser um problema até 1000 opções, eu acho (500 opções ainda estão funcionando relativamente bem, veja a demonstração 4. aqui: http://davidstutz.github.io/bootstrap-multiselect/ ) Mas, como você mesmo pode tentar, a opção selecionar todos com 500 itens às vezes leva até 10 segundos para ser concluída. Isso é muito ruim e você pode fazer sugestões para melhorar o desempenho neste problema. Talvez você encontre uma solução melhor, agradeço qualquer tipo de solicitação de pull.

Comecei apenas experimentando um pouco (não sei se o beta ainda está na versão atual), mas devido aos meus exames não poderei continuar neste momento. Pretendo continuar por volta de setembro, talvez outubro, mas não sei quanto tempo poderei investir. Além disso, ainda há muito trabalho a ser feito para a versão atual antes de começar com uma abordagem "limpa".

Oi David, obrigado pela resposta!
vamos dar uma olhada nisso.
sucesso com seus exames

192

olá David
Eu usei bootstrap multiselect com SelectAllOption.
há 148 itens de lista na lista suspensa.
está funcionando tão devagar.
Você tem alguma solução para este problema.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

rodrigonunes100 picture rodrigonunes100  ·  3Comentários

zeyabadar picture zeyabadar  ·  5Comentários

zephyx picture zephyx  ·  7Comentários

psyclight picture psyclight  ·  4Comentários

donbonifacio picture donbonifacio  ·  7Comentários