Pergunta

Eu estou escrevendo jQuery para uma página que é uma bagunça complexo de muitos elementos DOM (não tenho controle sobre isso). O browser principal alvo é IE7 , e eu tenho preocupações sobre a velocidade do seu motor de JavaScript. Scripts Eu já escritos são laggy e têm sido desempenho afinado com o melhor de minha capacidade.

Eu poderia escrever script que é simples de manter e compreender, por exemplo, usando um único contains comunicado. Ou eu posso ajudar o motor estreitando a busca DOM através deste HTML bagunçado resultando em mais complexidade.

Eu deveria me importar sobre a velocidade do motor de JavaScript do navegador ao escrever scripts jQuery?

Foi útil?

Solução

jQuery é escrito em JavaScript. Então você deve se preocupar com a velocidade do motor de JavaScript, que também afeta a velocidade do seu código jQuery.

Há uma abundância de dicas e truques sobre como escrever código jQuery mais eficiente. O princípio fundamental é entender como jQuery funciona, como os seletores são traduzidas em consultas que selecionam os elementos do DOM e assim por diante.

Outras dicas

Tente usar métodos nativos Javascript em vez de métodos jQuery sempre que possível e você geralmente vai notar uma melhoria de velocidade substancial, especialmente no IE. motor de renderização JS do IE é SLLLOOOOWWW em comparação com outros navegadores não-sucky .

Por exemplo, eu tinha um script AJAX que estava funcionando muito bem no FF / Safari, mas correu como melaço congeladas no IE. Acontece que o desenvolvedor que escreveu que fizeram uso pesado de $ .each do jQuery método () para obter dados de um grande arquivo JSON. Eu reescrevi o roteiro de usar JS padrão for () alças em vez disso, e executando alguns testes de velocidade sobre ele depois mostrou que o uso de () era mais de vinte vezes mais rápido.

Sim, mas você não deve ficar obcecado sobre ele:)

Contém pode ser relativamente lento, como eu não acredito que o modelo de documento é indexado de forma alguma pelo que parece de texto dentro dos elementos.

No entanto, eu não tenho certeza que é sábio para tentar algo overengineer e optimize para optimizings causa. Ir para a coisa mais simples que funciona, teste e, em seguida, otimizar, se você tem um problema.

I não ter executado em um único exemplo em que os benefícios da utilização de JQuery ou um plug-in (cross-browser compatibilidade, a funcionalidade extremamente útil) são superados pela diminuição na velocidade. E eu trabalho com belos grandes páginas da web, às vezes.

De qualquer forma, a única maneira que você vai saber é experimentá-lo. Escreva seu código da maneira mais sensata possível em primeiro lugar. Se ele for muito lenta, então você pode olhar para otimizá-lo.

Otimização DOM Traversal
http://www.learningjquery.com/2006/12/ -quick-ponta otimizando-dom-travessia

Não, você não deve se preocupar com isso, porque ele não deve afetar a forma como você escreve código.

Ou seja, você deve sempre escrever eficiente Javascript, tanto porque é uma boa prática, e porque para a maioria dos sites que você não tem idéia o navegador de qualquer usuário em particular está rodando, então você pode também assumir o pior.

Sim, você deve estar preocupado, mas felizmente, a equipe jQuery está tão preocupado:

alterações recentes jQuery Internals (Confira últimos dois slides)

Não mais de otimizar, mas otimizar tanto quanto você precisa.

Se ele é lento, então você realmente não tem escolha, mas para ir lá e ajuda jquery fora. Mas, então, se não é, então por que se preocupar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top