Quais são as melhores estratégias para usar múltiplas bibliotecas AJAX?
-
09-06-2019 - |
Pergunta
Que experiência você pode compartilhar sobre o uso de múltiplas bibliotecas AJAX?
Existem recursos úteis no Prototype, alguns no jQuery, na biblioteca do Yahoo, etc.É possível incluir todas as bibliotecas e usar o que você deseja de cada uma, elas geralmente funcionam bem juntas com espaços de nomes, etc.Por uma questão de velocidade, existe um limite prático para o tamanho/número de bibliotecas a serem incluídas ou isso é insignificante?Existem pares que funcionam particularmente bem juntos (por ex.Prototype/Scriptaculous) ou pares que não o fazem?
Solução
Você poderia usar todas essas bibliotecas, mas eu não recomendo fortemente.Baixar e executar tanto JavaScript provavelmente irá sufocar o navegador e tornar a experiência do usuário mais lenta.Seria muito melhor, do ponto de vista do usuário e do desenvolvedor, escolher um.Menos troca de contexto/arquitetura e menos código para manter.
Como outras respostas disseram, a maioria não entra em conflito.
Veja o Yahoo! Desempenho excepcional site para mais informações.
Outras dicas
Você poderia usar API de bibliotecas AJAX do Google.Fornece uma rede de distribuição comum e uma arquitetura de carregamento para jQuery, protótipo, script.aculo.us, MooTools e dojo
YUI tem um namespace bastante forte, portanto não deve entrar em conflito com outras bibliotecas.
Como mencionado, você pode executar o jQuery sem modo de conflito.
Protótipo faz tenho alguns problemas para funcionar bem com outras bibliotecas, em parte porque ela (ou costumava) modificar objetos principais como Array
. Protoseguro tenta resolver essas questões.
Script.aculo.us é simplesmente uma biblioteca de widgets que fica em cima do Prototype, então esses dois obviamente devem funcionar bem juntos.
Tudo isso significa que você poderia use YUI, jQuery, Prototype & Script.aculo.us em sua aplicação, mas você pode descobrir que usar uma única biblioteca facilita muito a manutenção das coisas.
Eu também acredito em jQuery, então perdoe minha falta de conhecimento sobre os outros, mas ...
O que torna o jQuery tão bom é o modo sem conflito, então, por exemplo, você faria:
$('#foobar').whatever();
Com o modo sem conflito, você faria o seguinte:
var jq = jQuery.noConflict();
jq('#foobar').whatever();
Uma coisa a menos para se preocupar.Imagino que o protótipo ofereça um recurso semelhante, e o Yahoo também.
Mas de qualquer forma, eu não gostaria de defender muito o jQuery e deixar as pessoas loucas, mas seja qual for a biblioteca que você selecionar, acho que todas elas podem fazer praticamente tudo o que você precisa.Pense especialmente nos benefícios de não tendo que aprender três bibliotecas diferentes.
Todos os três deveriam ser capazes.Selecione o que você mais gosta e estenda-o.:)
Estou usando jQuery e a versão apenas do arquivo javascript do kit de ferramentas Microsof ajax lado a lado no projeto agora.
Acho que vou usar o jQuery e acabar removendo o da Microsoft.Sou muito novo em jQuery, mas quanto mais aprendo sobre ele, mais apaixonado fico.
A melhor estratégia é não use várias bibliotecas.É tentador querer lançar mais bibliotecas para resolver um problema, mas isso é ineficiente, propenso a erros e torna seu código mais difícil de ser mantido por outras pessoas.
Na maioria dos casos, você poderá evitar o uso de múltiplas bibliotecas, entendendo o domínio do seu problema e qual biblioteca o ajudará a resolvê-lo melhor.Há também uma infinidade de plug-ins e extensões para todas essas bibliotecas.
Por exemplo, o JQuery oferece suporte a chamadas JSONP entre domínios imediatamente e possui uma bela biblioteca de widgets no JQueryUI, o Prototype não.
$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { });
O Prototype tem um suporte OO muito bom e é fácil de percorrer o DOM, mas carece de algumas das funcionalidades entre domínios necessárias para criar widgets e mashups.
var Foo = Class.create({
initialize: function(name) {
this.name = name;
}
});
var Bar = Class.create(Foo, {
initialize: function($super, name) {
$super(name);
}
});
Mootools tem ótimos efeitos, bom suporte OO, widgets realmente sólidos e solicitação entre domínios, mas (e esta pode ser apenas a minha impressão), a comunidade de desenvolvimento não é tão colaborativa e social com a comunidade global (fora do mootools) como a outra comunidades (o protótipo costumava ser assim).Isto pode ser o resultado do(s) seu(s) principal(is) desenvolvedor(es) viver(em) fora dos EUA e, portanto, não serem capazes de assistir a tantas conferências e participar na comunidade em geral.Eu não deixaria que isso o detivesse completamente, mas é algo para se manter em mente.
Ruby on Rails usa protótipo e Scriptaculous por padrão, pois há pouca sobreposição entre os dois.Eu também usei trechos de yui além disso e nunca tive problemas.Os tempos de carregamento são um problema, mas as bibliotecas geralmente são armazenadas em cache, portanto, é carregado apenas na primeira página.