Vor nicht allzu langer Zeit fragte mich ein Internetnutzer nach der Verwendung von requireJs und seajs im Frontend. Ich fragte ihn, ob Ihr Unternehmen schon einmal selbst geschriebene Javascript-Bibliotheken oder Javascript-Frameworks habe. Seine Antwort war nichts, er hatte nur davon gehört. Dinge wie requirejs und seajs sind neue Dinge und neue Technologien, und sie sind sehr wertvoll, deshalb möchte ich sie nutzen.
Die Frage dieses Internetnutzers hat mich dazu gebracht, über die JavaScript-Modulladetechnologie nachzudenken. Im letzten Artikel habe ich die Grundstruktur einer JavaScript-Bibliothek angegeben, die ich geschrieben habe requirejs. Oder verwenden Sie Technologien wie Seajs, um das Grundmodell zum Schreiben meiner JavaScript-Bibliothek neu zu gestalten. Als ich mehr über diese Technologie erfuhr, stellte ich fest, dass es falsch war, das Problem der Entkopplung von allgemeinem Code und Geschäftscode zu verwenden In der JavaScript-Bibliothek besteht der Zweck des Modulladesystems darin, das Abhängigkeitsproblem zwischen verschiedenen JavaScript-Bibliotheken zu lösen, und nicht darin, Ihnen bei der Entwicklung einer JavaScript-Bibliothek zu helfen.
Was ist also das Modulladesystem von Javascript?
Das Modulsystem ist hauptsächlich darauf ausgelegt, das Problem der Benennungskonflikte von Operationsobjekten in verschiedenen JavaScript-Bibliotheken und das Problem der Abhängigkeiten zwischen verschiedenen JavaScript-Bibliotheken zu lösen. Das Modulladesystem ist auf große Web-Front-End-Anwendungen oder Riesen ausgerichtet Web-Frontend-Anwendungen.
Im Allgemeinen sind die Funktionen der Seite einer riesigen Web-Front-End-Anwendung sehr umfangreich und das Geschäft ist sehr komplex. Darüber hinaus ändern sich die Funktionen der Seite im Laufe der Zeit häufig, so dass Front-End-Entwickler dies tun Oft müssen neue Funktionsmodule entwickelt werden, aber im tatsächlichen Geschäft können die Funktionen verschiedener Funktionsmodule einander durchdringen, voneinander abhängen und komplizierte Beziehungen zwischen den verschiedenen Front-Ends aufweisen Bibliotheken werden schwierig zu verwalten und zu kontrollieren sein. In diesem Fall erweist sich das Modulladesystem als nützlich.
Für die meisten Programmierer gibt es nicht viele Möglichkeiten, eine so große Web-Front-End-Anwendung selbstständig zu erstellen. Es gibt jedoch viel mehr Möglichkeiten, kleine und mittlere Web-Front-End-Anwendungen zu entwickeln, beispielsweise Web-Anwendungen auf Unternehmensebene Es werden nur sehr wenige Arten von JavaScript-Bibliotheken verwendet, und die Abhängigkeiten der einzelnen Bibliotheken sind leicht zu kontrollieren. Die Einführung eines Modulverwaltungssystems ist wahrscheinlich nicht erforderlich Es ist so gut wie das Front-End von Webanwendungen auf Unternehmensebene, sodass die Beziehung zwischen seinen Modulen oder JavaScript-Bibliotheken einfach zu verwalten ist. Tatsächlich sind diese kleinen und mittelgroßen Anwendungen wie die oben genannten alle auf bestimmte oder spezifische Szenarien ausgerichtet, daher bin ich persönlich der Meinung, dass wir angesichts solcher Web-Front-End-Projekte endlich selbst eine unabhängige JavaScript-Bibliothek erstellen können Diese Bibliothek sollte denen von jQuery ähneln. Die Arten von Bibliotheken sind ähnlich: eine Hauptbibliothek und mehrere Plug-in-Bibliotheken. Der Zweck der Hauptbibliothek besteht darin, das Problem der Vielseitigkeit zu lösen Der Zweck der Plug-In-Bibliothek hängt oft mit Geschäftscode zusammen. Um jedoch die Umfangsprobleme der Hauptbibliothek und der Plug-In-Bibliothek zu unterscheiden, habe ich der Bibliothek die Namespace-Funktion hinzugefügt.
Die Javascript-Modulladetechnologie und die Hadoop-Technologie weisen einige Ähnlichkeiten auf, das heißt, sie sind beide Technologien für sehr große Systeme. Sie können ihre Rolle nur unter bestimmten Bedingungen spielen, daher werden diese Technologien von großen Internetunternehmen eingeführt Unternehmen müssen Probleme lösen, wenn ihre Anwendungen immer größer und komplexer werden. Wenn Ihr System noch in den Kinderschuhen steckt, müssen Sie beim Einsatz dieser Technologien den einfachsten und effektivsten Weg finden Wenn Sie glauben, dass dieses System in Zukunft immer größer wird, sollten Sie die Schnittstellen für die Verwendung dieser Technologien in Zukunft beibehalten. Wenn Sie sie zu früh verwenden, ist es sehr wahrscheinlich, dass die Kosten für die Umgestaltung sinken Code wird höher sein.
Für das Modulladesystem besteht das am besten geeignete Szenario darin, das Entkopplungsproblem zwischen großen Web-Front-End-Anwendungsmodulen zu lösen. Wenn wir einfach eine neue Javascript-Datei schreiben und sofort die Modulladetechnologie verwenden, ist dies kein Problem Bevor wir eine bestimmte Technologie nutzen, sollten wir nicht nur darüber nachdenken, wie sie genutzt wird, sondern auch, ob ihre Nutzung sinnvoll ist.
Das Letzte, was ich sagen möchte, ist, dass ich denke, dass kleine und mittlere Web-Frontend-Anwendungen in der Produktion bereitgestellt werden sollten. Da JavaScript nicht das komplexeste ist, ist es am besten, alle externen JavaScript-Dateien in ein JavaScript zu packen Der Vorteil davon besteht darin, dass die Anzahl der HTTP-Anfragen reduziert wird. Die Verwendung der Modulladetechnologie macht das Packen von Dateien mühsam oder sogar unmöglich (Module wie requirejs und seajs basieren auf Dateien und jedes Modul ist eine unabhängige Datei). ). Dies ist dasselbe wie die Lösung des Zwecks der Reduzierung von http.