No IE6/7, o JavaScript impedirá a renderização da página de dois aspectos:
Os recursos da página da web na tag de script vão parar de solicitar e baixar antes que o script seja carregado.
O elemento HTML na tag de script interromperá a renderização antes que o script seja carregado.
No IE6/7 Firefox2/3 Safari3 Chrome1 e Opera, as tags de script impedirão o download:
Embora o script possa ser simultâneo no IE8, Safari4 e Chrome2, ele ainda dificulta o download de outros recursos:
Existem 6 maneiras de baixar o script em paralelo com outros recursos:
1.xhr avaliar - baixar script através do XHR (objeto xmlHttPrequest) e depois use o método de avaliação para executar o responseText do XHR
2.xhr injeção - baixe o script através do XHR, crie uma tag de script e insira -o no documento (corpo ou tag de cabeça) e, em seguida
3.xhr no iframe - coloque a tag de script em um iframe e faça o download através do iframe
4.Script Dom elemento - Crie uma etiqueta de script e aponte seu atributo SRC para o seu endereço de script
5.Script adie - Adicione o atributo de adiamento da tag de script. Isso é válido apenas no IE, mas o Firefox3.1 também suporta esse atributo.
6. Use o método Document.Write para escrever <script src = ""> na página, isso é válido apenas no IE.
Você pode visualizar os exemplos de uso de cada método através de bilhões de bilhões.
Se houver alguns scripts embutidos que precisam ser executados após a execução de scripts externos, eles precisam ser sincronizados. Chamado de "acoplamento", acoplando scripts assíncronos Este artigo apresenta alguns métodos que atualmente podem implementar o "acoplamento".
Headjs, pode permitir que o JS faça o download simultaneamente (mas execute sequencialmente): http://headjs.com/
A cópia do código é a seguinte:
head.js ("/path/to/jquery.js", "/google/analytics.js", "/js/site.js", function () {
// tudo feito
});
// O caso mais simples. Carregue e execute o script único sem bloquear.
head.js ("/path/to/file.js");
// carrega um script e execute uma função depois de ser carregada
head.js ("/path/to/file.js", function () {
});
// Carregar arquivos em paralelo, mas executá -los em sequência
head.js ("file1.js", "file2.js", ... "filen.js");
// executar a função depois que todos os scripts foram carregados
head.js ("file1.js", "file2.js", function () {
});
// Os arquivos são carregados em paralelo e executados para que eles cheguem
head.js ("file1.js");
head.js ("file2.js");
head.js ("file3.js");
// o anterior também pode ser escrito como
head.js ("file1.js"). js ("file1.js"). js ("file3.js");