JavaScript de Alto Desempenho
Descrição do livro
Se for semelhante à maioria dos desenvolvedores, você costuma usar JavaScript frequentemente para criar aplicações web interativas e de resposta rápida. O problema é que todas essas linhas de código em JavaScript podem tornar suas aplicações mais lentas. Este livro revela técnicas e estratégias que irão ajudar a eliminar gargalos de desempenho durante o desenvolvimento. Você aprenderá como melhorar o tempo de execução, a realização de downloads, a interação com o DOM, o ciclo de vida da página e muito mais.
O engenheiro de frontend do Yahoo!, Nicholas C. Zakas, e cinco outros especialistas em JavaScript – Ross Harmes, Lecome, Steven Levithan, Stoyan Stefanov e Matt Sweeney – demonstram métodos ideais para a inclusão de código na página, oferecendo dicas de programação que poderão ajudá-lo a encontrar os problemas uma vez que seu site esteja no ar.
• Identifique códigos problemáticos e adote alternativas mais eficientes para cumprir tarefas específicas.
• Melhore seus scripts aprendendo como o JavaScript armazena e acessa dados.
• Implemente código em JavaScript de uma forma que não prejudique a interação com o DOM.
• Utilize técnicas de otimização para melhorar o desempenho do tempo de execução.
• Descubra maneiras de garantir que sua UI seja sempre responsiva.
• Obtenha uma comunicação cliente-servidor mais rápida.
• Use um sistema de criação para reduzir seus arquivos e a compressão HTTP para enviá-los ao navegador.
É recomendável um entendimento de JavaScript de intermediário a avançado.
“JavaScript de Alto Desempenho cobre todas as questões relacionadas ao desempenho que os desenvolvedores atuais de JavaScript devem ter em mente. O livro certamente ampliou minha lista de boas práticas sobre desempenho.”
Steve Souders
“JavaScript de Alto Desempenho é um acervo impressionante de tópicos, dicas e truques para JavaScript compilados por especialistas no assunto: tudo em um único livro. Trata-se de uma leitura imprescindível para todos que desejam escrever JavaScript de alta qualidade.”
Venkat Udayasankar, guru de desempenho de pesquisas, Yahoo! Search
Ver menos ▲Sumário
- Prefácio
- Capítulo 1 ■ Carregamento e execução
- Posicionamento do script
- Agrupamento de scripts
- Scripts não bloqueadores
- Scripts adiados
- Elementos de script dinâmicos
- Injeção de script com XMLHttpRequest
- Padrão de desbloqueio recomendado
- Resumo
- Capítulo 2 ■ Acesso aos dados
- Gerenciamento de escopo
- Cadeias de escopo e resolução do identificador
- Desempenho da resolução do identificador
- Acréscimo na cadeia de escopo
- Escopos dinâmicos
- Closures, escopo e memória
- Membros de objeto
- Protótipos
- Cadeias de protótipos
- Membros aninhados
- Armazenamento em cache de valores de membros de objetos
- Resumo
- Gerenciamento de escopo
- Capítulo 3 ■ Criação de scripts DOM
- DOM no mundo dos navegadores
- Inerentemente lento
- Acesso e modificação do DOM
- innerHTML versus métodos DOM
- Clonagem de nodos
- Coleções HTML
- Caminhando pelo DOM
- Repaints e reflows
- Quando ocorre um reflow?
- Enfileiramento e esvaziamento das alterações à árvore de renderização
- Minimização de repaints e reflows
- Armazenamento em cache de informações de layout
- Remova elementos do fluxo para animações
- O IE e o :hover
- Delegação de eventos
- Resumo
- DOM no mundo dos navegadores
- Capítulo 4 ■ Algoritmos e controle de fluxo
- Loops
- Tipos de loops
- Desempenho do loop
- Iteração com base em função
- Condicionais
- if-else versus switch
- Otimização do if-else
- Tabelas de consulta
- Recursão
- Limites da pilha de chamadas
- Padrões de recursão
- Iteração
- Memoização
- Resumo
- Loops
- Capítulo 5 ■ Strings e expressões regulares
- Concatenação de strings
- Operadores de adição (+) e de atribuição por adição (+=)
- Junção de arrays
- String prototype concat
- Otimização de expressões regulares
- Como funcionam as expressões regulares
- Compreensão do backtracking
- Backtracking desenfreado
- Um lembrete sobre benchmarking
- Outras formas de melhorar a eficiência das expressões regulares
- Quando não devemos utilizar expressões regulares
- Aparo de suas strings
- Aparo com expressões regulares
- Aparo sem a utilização de expressões regulares
- Uma solução híbrida
- Resumo
- Concatenação de strings
- Capítulo 6 ■ Interfaces responsivas
- Thread da interface do usuário do navegador
- Limites dos navegadores
- Qual a duração ideal?
- Utilização de temporizadores
- Informações básicas sobre temporizadores
- A precisão dos temporizadores
- Processamento de arrays com temporizadores
- Divisão de tarefas
- Código cronometrado
- Temporizadores e desempenho
- Web workers
- Ambiente dos workers
- Comunicação com os workers
- Carregamento de arquivos externos
- Utilização na prática
- Resumo
- Thread da interface do usuário do navegador
- Capítulo 7 ■ Ajax
- Transmissão de dados
- Solicitação de dados
- Envio de dados
- Formatos de dados
- XML
- JSON
- HTML
- Formatação personalizada
- Conclusões quanto aos formatos de dados
- Diretrizes de desempenho do Ajax
- Armazenamento dos dados em cache
- Conheça as limitações de sua biblioteca Ajax
- Resumo
- Transmissão de dados
- Capítulo 8 ■ Práticas de programação
- Evite a avaliação dupla
- Utilize literais objeto/array
- Não repita seu trabalho
- Carregamento tardio
- Carregamento prévio condicional
- Utilize as partes rápidas
- Operadores bit a bit
- Métodos nativos
- Resumo
- Capítulo 9 ■ Criação e disponibilização de aplicações JavaScript de alto desempenho
- Apache Ant
- Combinação de arquivos JavaScript
- Pré-processamento de arquivos JavaScript
- Minificação do JavaScript
- Processos no tempo de build versus processos no tempo de execução
- Compressão JavaScript
- Armazenamento em cache de arquivos JavaScript
- Como lidar com problemas de caching
- Utilização de uma rede de entrega de conteúdo
- Disponibilização de recursos JavaScript
- Processos JavaScript de build
- Resumo
- Capítulo 10 ■ Ferramentas
- Criação de perfis com JavaScript
- YUI Profiler
- Funções anônimas
- Firebug
- Profiler do painel Console
- API do Console
- Painel Net
- Ferramentas para desenvolvimento do Internet Explorer
- Web Inspector do Safari
- Painel de perfis
- Painel Resources
- Ferramentas para desenvolvedores do Chrome
- Bloqueio de scripts
- Page Speed
- Fiddler
- YSlow
- dynaTrace Edição Ajax
- Resumo
- Sobre o autor
- Colofão
Sobre o autor
Nicholas C. Zakas, engenheiro-chefe de frontend da página do Yahoo! e colaborador da biblioteca Yahoo! User Interface (YUI), é um engenheiro de software especializado em design e implementação de interface web utilizando JavaScript, HTML, CSS, XML e XSLT.… Ver perfil completo ▶
Livros relacionados
Recursos
Opinião dos leitores
Eduardo P
Ótimo livro! Queria muito saber sobre o reflow e repaint e o livro abordou bem sobre estes dois itens e finalmente consegui entender. O livro também explica até sobre o jeito mais rápido de executar um loop etc...
Claudio A
Podemos chamar este livro de uma obra!(Sem exagero algum). Mesmo sendo um livro de 2010, é um livro que traz informações preciosas para codificar em JavaScript nos dias atuais. Se você trabalha com código legado essa será uma excelente escolha para ajudar a entender e resolver problemas de lentidão. O único capítulo que pode ser descartado da sua leitura é sobre as ferramentas, pois já se atualizaram.
Rodrigo C
Recomendo.
Gilberto S J
Ótimo livro para quem busca aumentar seus conhecimentos em Javascript.




