Você tem um período de tempo muito curto em suas mãos.
Antes de falar sobre tópicos:
O DOM é lento
Realmente.
Se o seu site for pesado para DOM, encontre formas de offshore nessas manipulações. Use transições CSS3, use canvas para animações, evite tintas desnecessárias , etc.
Também existem técnicas para torná-lo mais rápido, como DocumentFragments, usando elementos off-DOM, etc.
O JavaScript é executado em um único thread no navegador
Isso significa que seus scripts têm para serem muito rápidos se você quiser que o usuário não sinta qualquer tipo de atraso.
Você pode, por exemplo, dividir cálculos intensivos em pequenos fragmentos, por exemplo:
function findMax(arr){
var currentMax = -Infinity;
var i=0;
setImmidiate(function() doWork{
if(arr[i] > currentMax){
currentMax = arr[i];
}
i++;
if(i< arr.length){
setImmidiate(doWork);
}
});
return currentMax;
};
Espere, não vá ainda! Eu menti! Não é realmente único encadeado
O JavaScript não precisa mais executar um único thread no navegador! Se você oferece suporte a navegadores modernos, poderá usar o WebWorkers. . Isso permitirá que você execute scripts intensivos em encadeamentos em segundo plano e não interrompa o fluxo principal do programa.
Se você suporta navegadores modernos, essa é provavelmente a maneira correta de lidar com cálculos intensivos de CPU.
Os WebWorkers permitem que você use tópicos que você está acostumado a partir de outras linguagens, mas de uma forma de salvar (ator-system'ish). Você pode dividir o trabalho entre os funcionários e equilibrá-lo como faria em qualquer outra linguagem de programação.
Observação os funcionários da Web exigem o IE10, o Safari 4+, o Opera 10.6 +, o Chrome 3+ ou o Firefox 3.5 +
Uma última coisa
O JavaScript foi projetado para executar E / S assíncronas, embora isso não seja o que você está fazendo com mais frequência. Os problemas de desempenho do JavaScript podem ser o resultado do código síncrono em que o código assíncrono é apropriado. Manipulação de eventos síncronos, código de bloqueio e, mais geralmente, qualquer coisa que não seja intensiva em CPU deve levar muito pouco tempo e não exigir o uso de 'grandes armas' como os trabalhadores da Web.