second - jquery first child
¿Cuáles son las mejores estrategias para usar múltiples bibliotecas AJAX? (7)
¿Qué experiencia puedes compartir sobre el uso de múltiples bibliotecas AJAX?
Hay funciones útiles en Prototype, algunas en jQuery, la biblioteca de Yahoo, etc. ¿Es posible incluir todas las bibliotecas y usar lo que quiera de cada una, generalmente todas juegan muy bien junto con los espacios de nombres, etc. Por el bien de la velocidad ¿Existe un límite práctico para el tamaño / número de bibliotecas para incluir o es insignificante? ¿Hay pares que funcionan particularmente bien juntos (por ejemplo, Prototype / Scriptaculous) o pares que no funcionan bien?
La mejor estrategia es no usar múltiples bibliotecas . Es tentador querer lanzar más bibliotecas a un problema, pero es ineficiente, propenso a errores y hace que su código sea más difícil de mantener por otros.
En la mayoría de los casos, debería poder evitar el uso de múltiples bibliotecas entendiendo su dominio problemático y qué biblioteca lo ayudará a resolverlo mejor. También hay una gran cantidad de complementos y extensiones para todas estas bibliotecas.
Por ejemplo, JQuery admite llamadas JSONP entre dominios de forma inmediata y tiene una buena biblioteca de widgets en JQueryUI, Prototype no.
$.getJSON(''http://anothersite.com/mashup.json?callback=?'', function(data) { });
El prototipo tiene una buena compatibilidad con OO y es fácil atravesar el DOM, pero carece de algunas de las funciones de dominio cruzado requeridas para crear widgets y mashups.
var Foo = Class.create({
initialize: function(name) {
this.name = name;
}
});
var Bar = Class.create(Foo, {
initialize: function($super, name) {
$super(name);
}
});
Mootools tiene excelentes efectos, buen soporte OO, widgets realmente sólidos y solicitudes de dominios cruzados, pero (y esto podría ser solo mi impresión), la comunidad de desarrollo no es tan colaborativa y social con la comunidad global (fuera de mootools) como la otra comunidades (el prototipo solía ser de esta manera). Esto podría ser el resultado de que su (s) desarrollador (es) principal (es) viva (n) fuera de los EE. UU., Y por lo tanto no pueden asistir a tantas conferencias ni participar en la comunidad en general. Sin embargo, no dejaría que eso te desanime por completo, pero es algo a tener en cuenta.
Estoy usando jQuery y la única versión del archivo javascript del kit de herramientas Microsof ajax uno al lado del otro en el proyecto en este momento.
Creo que voy a ir con jQuery y terminaré eliminando el de Microsoft. Soy muy nuevo en jQuery, pero cuanto más aprendo, más me enamoro.
Ruby on Rails utiliza prototipo y Scriptaculous de forma predeterminada, ya que hay poca superposición entre los dos. También he usado yui snippets además de eso y nunca he tenido un problema. Los tiempos de carga son un problema, pero las bibliotecas generalmente se almacenan en caché, por lo que solo se cargan en la primera página.
También soy un creyente jQuery, perdone mi falta de conocimiento sobre los demás, pero ...
Lo que hace que jQuery sea tan bueno es el modo sin conflicto, por lo que, por ejemplo, harías:
$(''#foobar'').whatever();
Con el modo sin conflicto, harías esto:
var jq = jQuery.noConflict();
jq(''#foobar'').whatever();
Una cosa menos de la que preocuparse. Me imagino que el prototipo ofrece una característica similar, y Yahoo también.
Pero de todos modos, no quiero abogar mucho por jQuery y volver loca a la gente, pero independientemente de la biblioteca que elijas, creo que todos pueden hacer casi todo lo que necesites. Especialmente piense en los beneficios de no tener que aprender tres bibliotecas diferentes.
Los tres deben ser capaces. Seleccione el que más le guste y extiéndalo. :)
Puede usar Google AJAX Libraries API . Proporciona una red de distribución común y una arquitectura de carga para jQuery, prototype, script.aculo.us, MooTools y dojo
Puede usar todas esas bibliotecas, pero recomiendo encarecidamente que no lo haga. La descarga y la ejecución de esa cantidad de JavaScript probablemente ahogarán el navegador y ralentizarán la experiencia de los usuarios. Sería mucho mejor desde la perspectiva de un usuario y un desarrollador elegir uno. Menos cambio de contexto / arquitectura y menos código para mantener.
Como han dicho otras respuestas, la mayoría no entran en conflicto.
Vea el sitio de Desempeño Excepcional de Yahoo! Para más información.
YUI tiene un espacio de nombres bastante fuerte, por lo que no debería chocar con otras bibliotecas.
Como se mencionó, puede ejecutar jQuery en modo no conflictivo.
El prototipo tiene algunos problemas para jugar bien con otras bibliotecas, en parte porque (o antes) modifica los objetos centrales como la Array
. Protosafe intenta abordar esos problemas.
Script.aculo.us es simplemente una biblioteca de widgets que se encuentra encima de Prototype, por lo que las dos obviamente deberían jugar muy bien juntas.
Todo esto significa que puede usar YUI, jQuery, Prototype y Script.aculo.us en su aplicación, pero puede descubrir que usar una única biblioteca hace que sea mucho más fácil mantener las cosas.