Eu estive analisando vários carregadores de recursos assíncronos e não tenho certeza de qual usar ainda. Onde trabalho, temos esforços de grupo díspares cujos módulos de classe podem usar versões diferentes do jQuery (etc). Como tal, as dependências aninhadas também podem ser diferentes. Não tenho controle sobre isso, portanto, isso significa que preciso carregar dinamicamente recursos que podem usar versões alternativas da mesma biblioteca.
Como tal, aqui estão os meus requisitos:
- Carregue arquivos de recursos JavaScript e CSS de forma assíncrona.
- Gerenciar ordem de dependência e dependências aninhadas nas versões.
- Detecte se um recurso já está carregado.
- Deve permitir o carregamento entre domínios (CDNs)
- (opcional) Permite descarregar um recurso.
Eu estive olhando para:
Talvez eu consiga simular esses requisitos carregando versões em variáveis com espaçamento adequado de nomes e usando uma matriz para rastrear o que já está carregado ... mas (espero) alguém já tenha inventado isso.
Então, minhas perguntas são:
- Quais você usa? E porque?
- Existem outros que satisfazem totalmente meus requisitos?
- Com quais você acha mais eloquente e mais fácil trabalhar? E porque?
ATUALIZAÇÃO:
Para os interessados, tentei todas as bibliotecas da AMD acima (e mais). No final, fui com o RequireJS . É apenas mais limpo e fácil no geral ... e estou feliz por usá-lo.
getScript
função para injeção de scripts.