Hier wird jquery unter der Framework-Kategorie http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks erwähnt
Ist jquery eine Javascript-Bibliothek oder ein Javascript-Framework?
Hier wird jquery unter der Framework-Kategorie http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks erwähnt
Ist jquery eine Javascript-Bibliothek oder ein Javascript-Framework?
Antworten:
Eine Bibliothek. Laut der Homepage , und der ich zustimme.
Ein Framework erzwingt normalerweise eine bestimmte Art der Implementierung einer Lösung, während jQuery nur ein Werkzeug ist, um die Implementierung der gewünschten Aufgaben zu vereinfachen.
Sicher ist es eine Javascript-Bibliothek. Aber ob man ein Framework ist oder nicht, ich denke nur, dass es kein Framework ist. Schauen Sie sich die Wikipedia-Definition des Software-Frameworks an :
Es ist eine Sammlung von Softwarebibliotheken, die eine definierte Anwendungsprogrammierschnittstelle bereitstellen.
Und jQuery ist nur eine einzige Bibliothek. Danach heißt es:
Frameworks enthalten wichtige Unterscheidungsmerkmale, die sie von normalen Bibliotheken trennen:
- Umkehrung der Steuerung - In einem Framework wird im Gegensatz zu Bibliotheken oder normalen Benutzeranwendungen der Steuerungsfluss des gesamten Programms nicht vom Aufrufer, sondern vom Framework vorgegeben.
Ich denke, es ist kein Rahmen.
Laut der AngularJS-Website
- eine Bibliothek - eine Sammlung von Funktionen, die beim Schreiben von Web-Apps nützlich sind. Ihr Code ist verantwortlich und ruft die Bibliothek auf, wenn
er dies für richtig hält. ZB jQuery.- Frameworks - eine bestimmte Implementierung einer Webanwendung, bei der Ihr Code die Details ausfüllt. Das Framework ist verantwortlich und ruft Ihren Code auf, wenn es etwas App-spezifisches benötigt. ZB Durandal, Glut usw.
Framework und Libarry schließen sich nicht unbedingt gegenseitig aus. Framework ist normalerweise eine Bibliothek oder eine Sammlung von Bibliotheken.
Genau genommen ist jQuery eine Bibliothek, die jedoch zum Teil der Definition eines Software-Frameworks entspricht. Obwohl viele argumentieren würden, dass jQuery die Definition eines Software-Frameworks nicht genau genug erfüllt, ist die Tatsache, dass auch kein anderes JavaScript-Framework die Definition eines Frameworks vollständig erfüllt.
Eines der bestimmenden Merkmale eines Software-Frameworks ist, dass sein Code vor Änderungen geschützt ist. In JavaScript ist dies eindeutig nicht der Fall. Alle Bibliotheken oder Frameworks, die in Ihren clientseitigen Code aufgerufen werden können, können geändert werden, obwohl es gegen bewährte Methoden verstößt, sie zu ändern. Wenn es also zulässig ist, Bootstrap oder AngularJS als Framework aufzurufen, gibt es keinen Grund, warum jQuery auch nicht als Framework bezeichnet werden kann. Dieser Link enthält eine detailliertere Erläuterung, wie jQuery die Kriterien erfüllt, die als Framework bezeichnet werden sollen.
Die vielleicht beste Erklärung dafür, warum jQuery eher ein Framework als eine Bibliothek ist, ist die Tatsache, dass Sie als Entwickler entscheiden können, keine seiner Framework-ähnlichen Funktionen zu verwenden. Sie können beispielsweise eine einfache jQuery-Anweisung mit einer Standard-JavaScript-Anweisung in derselben Zeile mischen. AngularJS und Bootstrap erlauben dies normalerweise nicht. Daher lautet die genaue Antwort, ob jQuery ein Framework ist oder nicht, "es hängt davon ab, ob Sie es als Framework verwenden oder nicht".
Ich stimme allen Antworten hier zu, dass jQuery selbst in der Tat eine Bibliothek ist, kein Framework. Wie in Saeeds Antwort angegeben, ist eines der wichtigsten Unterscheidungsmerkmale die Umkehrung der Kontrolle. Sie können jedoch die Funktionalität von jQuery verwenden, um ein eigenes Framework zu erstellen.
Beispiele: Es gibt Projekte, die auf jQuery basieren und als Frameworks definiert sind: jQuery Mobile: Ein berührungsoptimiertes Webframework , JavaScriptMVC und sammy.js, um nur einige zu nennen.
Es gibt auch andere Bibliotheken, die auf jQuery aufbauen, wie z. B. die jQuery-Benutzeroberfläche
Einiges davon scheint semantisch zu sein, wenn definiert wird, was eine Bibliothek im Vergleich zu einem Framework ist, aber diese Beispiele helfen mir, die Grenze zu ziehen.
Wenn wir über die Umkehrung der Kontrolle sprechen, von der fast jeder im obigen Thread spricht, dann ist jQuery ein RAHMEN.
Es hat IOC, zB wenn wir die Funktion $ (document) .ready {} schreiben ... es ist der Container, der diese Methode aufruft und wir setzen unseren Code einfach in geschweifte Klammern. Wir sind nicht der Aufrufer dieser Methode und daher "Inversion of Control"
Auf diese Weise ist jQuery ein RAHMEN.
ready()
.