Jquery è una libreria o un framework javascript? [chiuso]


121

Qui, jquery è menzionato nella categoria framework: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

Jquery è una libreria o un framework javascript?


40
La biblioteca di una persona è la struttura di un'altra persona.
nnnnnn

1
Questo è fuori tema qui perché ogni risposta è ugualmente valida: "Qual è il tuo ______ preferito?" . Inoltre, cosa importa se tutto è una libreria o un framework?
EJoshuaS - Ripristina Monica il

Risposte:


169

Una biblioteca. Secondo la homepage , e con cui sono d'accordo.

Un framework è qualcosa che di solito impone un certo modo di implementare una soluzione, mentre jQuery è solo uno strumento per rendere più semplice l'implementazione di ciò che vuoi fare.


55
+1. Una libreria è qualcosa che chiami dal tuo programma. Un framework è qualcosa che richiama il tuo programma.
Thilo

1
Per il confronto tra libreria e framework, vedere "Inversion of Control" stackoverflow.com/a/3057818/2144912
cheshireoctopus


19

Di sicuro è una libreria javascript. Ma riguardo all'essere o meno un framework, penso solo che non sia un framework. Dai un'occhiata alla definizione di framework software di Wikipedia :

È una raccolta di librerie software che forniscono un'interfaccia di programmazione dell'applicazione definita.

E jQuery è solo una singola libreria. Dopodiché dice:

I framework contengono caratteristiche distintive chiave che li separano dalle normali librerie:

  1. inversione di controllo - In un framework, a differenza delle librerie o delle normali applicazioni utente, il flusso di controllo del programma complessivo non è dettato dal chiamante, ma dal framework.

Quindi, penso che non sia un framework.


9

Secondo il sito web di angularjs

  • una libreria: una raccolta di funzioni utili durante la scrittura di app Web. Il tuo codice è in carica e chiama nella libreria quando
    lo ritiene opportuno. Ad esempio, jQuery.
  • framework: una particolare implementazione di un'applicazione web, in cui il codice inserisce i dettagli. Il framework è in carica e chiama il tuo codice quando ha bisogno di qualcosa di specifico per l'app. Ad esempio, durandal, brace, ecc.

5

Framework e libarry non sono necessariamente termini che si escludono a vicenda. Framework è tipicamente una libreria o una raccolta di librerie.

A rigor di termini, jQuery è una libreria, ma, in una certa misura, soddisfa la definizione di un framework software. Sebbene molti sostengano che jQuery non soddisfa la definizione di un framework software in modo abbastanza rigoroso, il fatto è che nessun altro framework JavaScript soddisfa pienamente la definizione di un framework.

Una delle caratteristiche distintive di un framework software è che il suo codice è protetto dalle modifiche. In JavaScript, questo chiaramente non è il caso. Eventuali librerie o framework che possono essere richiamati nel codice lato client sono modificabili, sebbene sarebbe contro le migliori pratiche modificarli. Pertanto, se è consentito chiamare Bootstrap o AngularJS un framework, non c'è motivo per cui jQuery non possa essere chiamato nemmeno framework. Questo collegamento contiene una spiegazione più dettagliata di come jQuery soddisfa i criteri per essere chiamato framework.

Forse la migliore spiegazione del perché jQuery è più un framework che una libreria è il fatto che come sviluppatore, puoi scegliere di non utilizzare nessuna delle sue funzionalità simili a framework. Ad esempio, puoi combinare una semplice istruzione jQuery con un'istruzione JavaScript standard sulla stessa riga. AngularJS e Bootstrap in genere non ti consentono di farlo. Pertanto, la risposta corretta se jQuery è un framework o meno è "dipende se hai scelto di usarlo come framework o meno".


2

Sono d'accordo con tutte le risposte qui che jQuery stesso è davvero una libreria, non un framework. Come specificato dalla risposta di Saeed, una delle principali caratteristiche distintive è l'inversione del controllo. È tuttavia possibile utilizzare la funzionalità di jQuery per creare un proprio framework.

Esempi: ci sono progetti costruiti su jQuery che sono definiti come framework: jQuery Mobile: A Touch-Optimized Web Framework , JavaScriptMVC e sammy.js per citarne alcuni.

Ci sono anche altre librerie costruite su jQuery, come jQuery UI

Alcuni sembrano semantici quando si definisce cosa sia una libreria rispetto a un framework, ma questi esempi aiutano a tracciare la linea per me.


1

Se parliamo di inversione del controllo, di cui parlano quasi tutti nel thread precedente, jQuery è un FRAMEWORK.

Ha IOC, ad esempio quando scriviamo la funzione $ (document) .ready {} ... è il contenitore che chiama questo metodo e mettiamo semplicemente il nostro codice tra parentesi graffe. Non siamo noi il chiamante di questo metodo e quindi "Inversion of Control"

In questo modo jQuery è un FRAMEWORK.


1
La maggior parte delle biblioteche di grandi dimensioni forniscono almeno una sorta di metodo vagamente richiamato per qualche scopo. Puoi scrivere molto codice jQuery senza mai fare affidamento ready().
Nathan Tuggy

@NathanTuggy Allora perché anche la discussione dettagliata su Framework vs Lib parla di IOC. Se è lì, è lì. Perché parlare di "affidarsi" o "non fare affidamento".
pinkman

Perché l'IoC in stile framework è caratterizzato dalla necessità di utilizzarlo. Non la possibilità di utilizzarlo, come desiderato, in modi specifici, a la carte. In un framework, non hai scelta: il controllo è invertito.
Nathan Tuggy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.