2010-07-19 10 views

risposta

18

perché è solo una libreria di molti. Potrebbe essere popolare ma è lungi dall'essere l'unica scelta. Inoltre, causerebbe il congelamento di una particolare versione e miglioramenti molto più lenti.

Inoltre, c'è comunque un piccolo vantaggio. È abbastanza piccolo e puoi impostarlo per essere intercambiabile dal brower in modo indefinibile in modo che venga scaricato solo una volta - se hai una nuova versione avrà un nuovo nome file, quindi non c'è nulla di male nel farla non scadere mai.

+8

Inoltre, se si utilizza un CDN "globale" come quello di Google per distribuire la libreria jQuery, è probabile che jQuery * sia * già * presente nella cache del browser (poiché tutti gli altri utilizzano lo stesso CDN) quindi non ha praticamente alcun vantaggio. –

+0

Sì, buon punto. Mi sono dimenticato di quello – jcoder

8

jQuery esiste solo perché (i produttori di browser) non sono in grado di concordare uno standard comune.

+1

Dico che si tratta di un'attuazione incompleta degli standard e dell'emergere di tecniche non originariamente o tutto, parte di qualsiasi standard. Inoltre, ci sono approcci che sono più convenienti di quanto previsto dagli standard, ad es. wrapper su getElementById. –

+0

@George Yup, ancora non ho detto perché non potevano essere d'accordo. Purtroppo lo stesso meccanismo che ha reso lo sviluppo di JS così veloce ha anche causato che è davvero così difficile da usare in generale che ora ha bisogno di framework. E lo stesso sta succedendo con i CSS ... – mbq

0

C'è anche il problema del controllo delle versioni. Alcuni siti ed estensioni di jQuery richiedono una certa versione di jQuery. Al momento tocca all'applicazione decidere quale versione utilizzare.

+0

ma potresti impostare un sistema di dichiarazione simile a doctype HTML e includere varie librerie di versioni nell'installazione del browser - solo il problema quindi è il ritardo tra le versioni di jQuery e il supporto del browser – HorusKol

+0

@HorusKol - I non vedere il ritardo come un problema neanche. Il funzionamento effettivo del browser non ha nulla a che fare con la libreria in modo che possa essere aggiornata automaticamente ogni volta che esce una nuova versione della libreria. Il fornitore del browser non ha bisogno di inviare un aggiornamento software solo per farlo. – Anurag

1

È possibile considerare jQuery come un plug-in JavaScript. E i browser non vengono spediti con i plug-in, altrimenti lo scopo dei plug-in sarebbe irrilevante.

0

Probabilmente perché i browser sono difficili da aggiornare. Qualche caratteristica di JQuery potrebbe finalmente farsi strada in javascript, e credo che alcuni di essi abbiano avuto di recente. (beh l'idea è comunque) Ci vogliono anni per aggiungere una funzionalità a qualcosa come javascript, dove la libreria JQuery può solo rilasciare una nuova versione.

v'è in realtà un piromane o spina firefox in che consente di iniettare JQuery nella pagina .. ma questo è solo uno strumento di sviluppo

+0

Hai il nome di quel plugin? Uber Utilità! – Psytronic

+1

@Psytronic: Penso che si riferisca a [FireQuery] (http://firequery.binaryage.com/) –

+0

Ringraziandoti molto, mi fa risparmiare la navigazione verso siti che so usarlo. – Psytronic

2

Plugin vengono aggiornati più spesso di browser - entro una settimana la versione del browser di jQuery sarebbe obsoleta :)

13

Penso che questa domanda dovrebbe essere una discussione più grande, ma queste risposte sono tutti falsi. Questo è anche 2 anni più tardi, naturalmente.

  1. "è solo una libreria di molti" - include lo top 11 quindi.
  2. "non sono stato d'accordo su uno standard comune" - Tipo di rendere jQuery uno standard a se stante.
  3. "aggiornato più spesso dei browser" o "rallenta i miglioramenti" - Quindi il browser non avrà jQuery-1.9.x fino al prossimo aggiornamento del browser, ma non inserirlo ancora nel progetto.
  4. "Cache comunque" - Certo, è ancora un trasferimento che non deve necessariamente accadere, e ci sono molte persone che non hanno fatto molta navigazione sul loro nuovo dispositivo che comunque vogliono il tuo sito veloce e così via.

Il fatto è che è totalmente fattibile e sarebbe meglio per il carico di internet; da quanto è discutibile. Potrei davvero vedere Chrome sostituire almeno qualsiasi trasferimento di rete al loro CDN con una copia locale, ma sono sicuro che ci sono alcuni problemi legali, di sicurezza o di neutralità della rete con quello. Proprio come sono sicuro che la ragione principale abbia qualcosa in più da fare con tali argomenti e non con queste scuse tecniche storpi che ovviamente non sono pensate.

Questo potrebbe avvantaggiare anche altre librerie se gli sviluppatori possono contare sulla velocità e sulla disponibilità di una libreria completa di strumenti come il dojo e non devono scegliere e scegliere solo per ridurre il peso. Inoltre, poiché la maggior parte delle biblioteche ha adottato l'approccio AMD o requireJS per impacchettare i propri progetti, ritengo che ci sia una buona argomentazione per consentire al browser di essere informato almeno delle sue dipendenze.

+0

"* Potrei davvero vedere [browser] almeno sostituire qualsiasi trasferimento netto a [un certo URL] con una copia locale *" - lo fanno già. Si chiama caching HTTP. – Bergi

0

Aggiunta di jQuery [type] funzionalità al browser è in-built implementazione JS (o rendere un 1 ° classe plug-in) avrebbe superato un problema di fondo:

come molti hanno detto, jQuery è una libreria JS - nel senso che, nel caso in cui il centesimo non scendesse, è scritto in JS e deve essere interpretato in fase di esecuzione.

L'incorporamento significherebbe che potrebbe essere scritto in codice nativo per il sistema operativo, rendendolo molto più performante.

Problemi correlati