Domanda

Quale esperienza puoi condividere sull'utilizzo di più librerie AJAX?

Ci sono funzionalità utili in Prototype, alcune in jQuery, nella libreria Yahoo, ecc.È possibile includere tutte le librerie e utilizzare ciò che desideri da ciascuna, generalmente funzionano tutte bene insieme agli spazi dei nomi, ecc.Per motivi di velocità esiste un limite pratico alla dimensione/numero di librerie da includere o questo è trascurabile?Ci sono coppie che funzionano particolarmente bene insieme (ad es.Prototype/Scriptaculous) o coppie che non lo fanno?

È stato utile?

Soluzione

Potresti usare tutte quelle librerie, ma lo consiglio vivamente.Scaricare ed eseguire così tanto JavaScript molto probabilmente soffocherà il browser e rallenterà l'esperienza dell'utente.Sarebbe molto meglio dal punto di vista dell'utente e dello sviluppatore sceglierne uno.Meno cambio di contesto/architettura e meno codice da mantenere.

Come hanno già detto altre risposte, la maggior parte non è in conflitto.

Vedi Yahoo! Prestazioni eccezionali sito per maggiori informazioni.

Altri suggerimenti

Potresti usare API delle librerie AJAX di Google.Fornisce una rete di distribuzione comune e un'architettura di caricamento per jQuery, prototipo, script.aculo.us, MooTools e dojo

YUI ha uno spazio dei nomi piuttosto forte, quindi non dovrebbe entrare in conflitto con altre librerie.

Come accennato, puoi eseguire jQuery senza modalità di conflitto.

Prototipo fa ho alcuni problemi a giocare bene con altre librerie, in parte perché (o prima) modifica gli oggetti principali come Array. Protosafe tentativi di affrontare tali questioni.

Script.aculo.us è semplicemente una libreria di widget che si trova sopra Prototype, quindi questi due dovrebbero ovviamente funzionare bene insieme.

Tutto questo significa che tu Potevo usa YUI, jQuery, Prototype e Script.aculo.us nella tua applicazione, ma potresti scoprire che l'uso di una singola libreria rende molto più semplice la manutenzione delle cose.

Anch'io sono un sostenitore di jQuery, quindi perdona la mia mancanza di conoscenza degli altri, ma...

Ciò che rende jQuery così eccezionale è la modalità senza conflitti, quindi ad esempio dovresti fare:

$('#foobar').whatever();

Con la modalità senza conflitti, faresti questo:

var jq = jQuery.noConflict();
jq('#foobar').whatever();

Una cosa in meno di cui preoccuparsi.Immagino che il prototipo offra una funzionalità simile e anche Yahoo.

In ogni caso, non vorrei sostenere troppo jQuery e far impazzire la gente, ma qualunque libreria tu scelga, penso che tutte possano fare praticamente tutto ciò di cui avresti bisogno.Pensa soprattutto ai vantaggi di non dover imparare tre diverse biblioteche.

Tutti e tre dovrebbero essere capaci.Seleziona quello che ti piace di più ed estendilo.:)

Al momento sto utilizzando jQuery e la versione solo file javascript del kit di strumenti Microsof ajax fianco a fianco nel progetto.

Penso che andrò con jQuery e finirò per rimuovere quello di Microsoft.Sono molto nuovo in jQuery, ma più ne imparo, più mi innamoro.

La migliore strategia è quella non utilizzare più librerie.È forte la tentazione di voler utilizzare più librerie per risolvere un problema, ma è inefficiente, soggetto a errori e rende più difficile la manutenzione del codice da parte di altri.

Nella maggior parte dei casi dovresti essere in grado di evitare di utilizzare più librerie comprendendo il dominio del problema e quale libreria ti aiuterà a risolverlo al meglio.C'è anche una miriade di plugin ed estensioni per tutte queste librerie.

Ad esempio, JQuery supporta immediatamente le chiamate JSONP tra domini e ha una bella libreria di widget in JQueryUI, Prototype no.

$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { });

Prototype ha un ottimo supporto OO ed è facile attraversare il DOM, ma manca di alcune funzionalità interdominio necessarie per creare widget e mashup.

var Foo =  Class.create({  
  initialize: function(name) {
    this.name = name;
  }   
});

var Bar = Class.create(Foo, {
  initialize: function($super, name)  {
     $super(name);
   }
});

Mootools ha ottimi effetti, un buon supporto OO, widget davvero solidi e richieste interdominio, ma (e questa potrebbe essere solo una mia impressione), la comunità di sviluppo non è così collaborativa e socievole con la comunità globale (al di fuori di Mootools) come le altre comunità (il prototipo era così).Ciò potrebbe essere il risultato del fatto che i loro principali sviluppatori vivono al di fuori degli Stati Uniti e quindi non sono in grado di partecipare a così tante conferenze e partecipare alla comunità più ampia.Non lascerei che questo ti scoraggi del tutto, ma è qualcosa da tenere a mente.

Ruby on Rails utilizza sia il prototipo che Scriptaculous per impostazione predefinita, poiché c'è poca sovrapposizione tra i due.Oltre a ciò, ho utilizzato anche gli snippet yui e non ho mai avuto problemi.I tempi di caricamento sono un problema, ma le librerie vengono solitamente memorizzate nella cache, quindi è solo sulla prima pagina caricata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top