ist das Hauptproblem, auf das jeder Webanwendungs ??-Entwickler aufmerksam macht. Aufgabenl?ufer wie Grunzen spielen eine Schlüsselrolle im Entwicklungsprozess. Wir werden eine Reihe von Grunzen -Plugins verwenden, um sicherzustellen, dass AngularJS -Anwendungen sicher komprimiert werden k?nnen. Bevor ich über AngularJs und Komprimierung diskutiere, m?chte ich betonen, dass Entwickler aller F?higkeiten von diesem Tutorial profitieren k?nnen, aber es ist besser, die Grundlagen des Grunzens zu haben. In diesem Artikel werden wir Grunzen verwenden, um neue Ordner zu generieren, sodass Grunzenanf?nger auch ein gutes Verst?ndnis dafür haben k?nnen, wie es funktioniert.
Schlüsselpunkte
- Taskl?ufer wie Grunzen automatisieren Code -N?hte und -komprimierung, optimieren Sie die Seitengeschwindigkeit w?hrend der Entwicklung. Das Grunzplug-In stellt sicher, dass AngularJS-Anwendungen sicher komprimiert werden k?nnen.
- standardm??ig sind AngularJS -Anwendungen nicht komprimierbar und müssen in Array -Syntax geschrieben werden. Wenn Uglifyjs ausgeführt wird, wird die Parameter umgebracht, aber die Existenz von DI -Annotationen im Array verhindert, dass sie umbenannt werden, um sicherzustellen, dass die umbenannten Parameter immer noch Zugriff auf die erforderlichen Abh?ngigkeiten haben.
- Grunzen kann verwendet werden, um die Annotations-, Splei?- und Komprimierungsprozesse von AngularJS -Anwendungen zu automatisieren. Nach der Installation der erforderlichen Plug-Ins und der Konfiguration von Grunzen, um die Datei "package.json" zu lesen, wird die Aufgabe geladen und registriert. Konfigurieren Sie dann das Plugin, um bestimmte Dateien zu finden.
- grunzen hilft beim Schreiben eines sichereren Winkelcode, indem er Aufgaben automatisiert, die Fehler erfassen und verhindern. Es kann jedes Mal, wenn die Datei gespeichert wird, Unit -Tests auf dem Code ausführen, und sendet sofort einen Fehleralarm an den Entwickler. Automatisierung spart Zeit und stellt sicher, dass wichtige Aufgaben nicht ignoriert werden.
Problem der Winkelanwendungskomprimierung
articleJS -Anwendungen sind standardm??ig nicht komprimierbar. Sie müssen in Array -Syntax geschrieben werden. Wenn Sie sich nicht sicher sind, wie die Array -Syntax ist, haben Sie wahrscheinlich Code geschrieben, um ihn zu verwenden. Schauen wir uns zwei Beispiele für AngularJS -Controller an, die die Parameter $scope
und $http
übergeben. Im ersten Beispiel unten werden die Fabrik und den Controller des Moduls in ein Array eingewickelt, das mit einer DI -Annotation beginnt, die, wie Sie sehen k?nnen, nicht dem trockenen Prinzip folgt (nicht wiederholen).
var form = angular.module('ControllerOne', []) form.factory('Users', ['$http', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }]); form.controller('InputController', ['$scope', '$http', 'Users', function($scope, $http, Users) { formData = {}; $scope.createUser = function () { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function (data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; }]);
Im n?chsten Beispiel ist der Modulcode crud.config
immer noch nicht komprimierbar, aber der Code ist kürzer als vorherige. Es benennt nur die Dienste und übergibt dann die erforderlichen Abh?ngigkeiten in die Funktion als Parameter, ohne sie zuerst als Zeichenfolgen auszuschreiben. Solange es keine Komprimierung gibt, wird dieser Code normal ausgeführt. Daher ist es leicht zu verstehen, warum Menschen diese Syntax beim Schreiben von AngularJS -Code h?ufig w?hlen.
var form = angular.module('ControllerTwo', []) form.factory('Users', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }); form.controller('InputController', function($scope, $http, Users) { formData = {}; $scope.createUser = function() { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function(data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; });
Jetzt, da Sie die physikalischen Unterschiede zwischen diesen beiden Codestücken verstanden haben, werde ich schnell erkl?ren, warum diese Syntax nicht für die Komprimierung geeignet ist.
Wie Array -Notation
funktioniert Wie oben erw?hnt, beginnt Array -Notation mit DI -Annotationen, die eine Schlüsselrolle bei der Sicherung der Codekomprimierung spielt. Wenn Uglifyjs ausgeführt wird, wird unsere Parameter von $scope
und $http
in a
bzw. b
umgebracht. Die Existenz von DI -Annotationen, die als Saiten in ein Array übergingen, verhindert, dass sie umbenannt werden. Daher haben diese umbenannten Parameter immer noch Zugriff auf die erforderlichen Abh?ngigkeiten. Wenn diese Anmerkungen nicht vorhanden sind, wird der Code gebrochen. Wie Sie sehen k?nnen, ist es sehr ineffizient, Code auf diese Weise manuell zu schreiben. Um dies zu vermeiden, werde ich Ihnen jetzt zeigen, wie Sie AngularJS -Anwendungen auf eine vollst?ndig optimierte Weise mit Grunzen und Vorbereitung für die Produktion annotieren, spleifen und komprimieren.
Verwenden Sie GrunT
Das gesamte Repository des Projekts finden Sie in GitHub, einschlie?lich der von uns befindlichen Dateien. Für diejenigen, die es gewohnt sind, Grunzen zu verwenden, k?nnen Sie fortfahren und Ihren eigenen Build erstellen oder diesen Code einem vorhandenen Projekt hinzufügen. Wenn Sie ein leeres Verzeichnis verwenden, müssen Sie sicherstellen, dass sich im Verzeichnis eine "package.json" -Datei befindet. Diese Datei kann erstellt werden, indem der Befehl npm init
ausgeführt wird. Sobald Sie die Datei "package.json" in Ihrem Projekt haben, k?nnen Sie das Plugin herunterladen, indem Sie den folgenden Befehl ausführen:
var form = angular.module('ControllerOne', []) form.factory('Users', ['$http', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }]); form.controller('InputController', ['$scope', '$http', 'Users', function($scope, $http, Users) { formData = {}; $scope.createUser = function () { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function (data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; }]);
Dies wird Grunzen in Ihr Projekt und die drei Plugins installieren, die wir verwenden:
-
grunt-contrib-concat
-
grunt-contrib-uglify
-
grunt-ng-annotate
W?hrend NG-Annotate ohne Grunzen verwendet werden kann, werden Sie bald sehen, wie nahtloses Grunzen den Prozess des Annotierens, Splei?ens und Komprimierens Ihres Codes macht. Es bietet eine einfache und effektive L?sung zum Komprimieren von AngularJS -Code. Wenn Sie dieses Projekt von Grund auf neu verfolgen, sollten Sie im Projektroot -Verzeichnis eine gruntfile.js haben, die den gesamten Grunzcode enth?lt. Wenn Sie es noch nicht getan haben, erstellen Sie es jetzt.
Drei Schritte zur Erzeugung von Kompressionssicherer Code
Schritt 1 - GRUNT konfigurieren, um die Datei "package.json" zu lesen
Um auf das zuvor installierte Plugin zugreifen zu k?nnen, müssen Sie zun?chst die pkg
Eigenschaft der Gruntfile konfigurieren, um den Inhalt der Datei "package.json" zu lesen. Das Objekt config
beginnt oben in der Grunzverpackungsfunktion und erstreckt sich im folgenden Beispiel von Zeile 3 bis Zeile 5, wird jedoch bald den gr??ten Teil des Codes enthalten.
var form = angular.module('ControllerTwo', []) form.factory('Users', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }); form.controller('InputController', function($scope, $http, Users) { formData = {}; $scope.createUser = function() { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function(data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; });
Schritt 2 - Laden und Registrieren von Grunzaufgaben
Nach dem Konfigurieren von Grunzen zum Lesen unserer "package.json" -Dateien müssen Plugins geladen werden, damit Grunn darauf zugreifen kann. Dies geschieht, indem der Namen des Plugins als Zeichenfolge in grunt.loadNpmTask()
übergeben wird. Stellen Sie sicher, dass diese Plugins in der Wrapper -Funktion geladen sind, aber au?erhalb des -Objekts. Wenn diese Bedingungen nicht erfüllt sind, funktioniert das Grunzen nicht ordnungsgem??. Als n?chstes müssen wir eine Standardaufgabe erstellen, die ausgeführt wird, wenn Grunt ohne ein bestimmtes Ziel aufgerufen wird. Sie sollten vorsichtig mit der Reihenfolge sein, in der diese Aufgaben hinzugefügt werden, da sie entsprechend ihrer Konfiguration ausgeführt werden. Hier ist NganNotate so konfiguriert, dass er zuerst ausgeführt wird, dann concat und huglifyjs, was meiner Meinung nach der beste Weg ist, um Ihren Code zu erstellen. Es ist auch wichtig zu beachten, dass config
nach dem Laden des Plugins platziert werden muss. Basierend auf dem, was wir gerade besprochen haben, sollte Gruntfile.js so aussehen:
grunt.registerTask()
var form = angular.module('ControllerOne', []) form.factory('Users', ['$http', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }]); form.controller('InputController', ['$scope', '$http', 'Users', function($scope, $http, Users) { formData = {}; $scope.createUser = function () { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function (data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; }]);
ngannotate
Jetzt, da unsere Gruntfile fertig ist, gehen wir zurück zum-Objekt und geben die Datei an, die das Ngannotate -Plugin finden soll. Dazu müssen wir zun?chst einen Teil für Ngannotate erstellen und in diesem Fall ein Ziel namens
erstellen. In diesem Ziel geben Sie die Datei an, zu der Sie DI -Annotationen hinzufügen m?chten, und den Ordner, zu dem sie generiert werden sollte. In diesem Beispiel nimmt Grunt die drei in angegebenen Dateien und generiert sie in einen neuen Ordner namens config
. Sobald die Konfiguration abgeschlossen ist, k?nnen Sie spApp
ausführen und sehen, wie der Code generiert wird. Darüber hinaus k?nnen Sie die Github-Seite von GrunT-NG-Annotate besuchen und die verschiedenen Optionen sehen, die Sie angeben k?nnen. public/js
public/min-safe
grunt ngAnnotate
split
var form = angular.module('ControllerTwo', []) form.factory('Users', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }); form.controller('InputController', function($scope, $http, Users) { formData = {}; $scope.createUser = function() { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function(data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; });Jetzt, da Sie einen Ordner mit dem AngularJS -Code mit den neuen Anmerkungen generiert haben, lassen Sie uns diesen Code fortsetzen oder in eine einzige Datei gesplei?t. Genauso wie wir den Abschnitt für Ngannotate erstellt haben, werden wir nun dasselbe für Concat und UglifyJs tun. Wie Ngannotate akzeptieren beide Aufgaben in diesem Fall
ein Ziel. Viele Konfigurationsoptionen k?nnen in diese Aufgaben übergeben werden, aber wir geben einfach
und an, um auf die richtige Datei zu verweisen. Wie Sie vielleicht erraten haben, erhalten diese Plugins den Dateiinhalt an das an das js
Objekt übergebene Objekt und verarbeiten sie in den nach src
angegebenen Ordner. Versuchen wir zu verstehen, was hier vor sich geht. Sie k?nnen dies testen, indem Sie dest
in Ihrem Terminal ausgeführt werden. Dies sollte zur Erstellung von src
führen. dest
var form = angular.module('ControllerOne', []) form.factory('Users', ['$http', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }]); form.controller('InputController', ['$scope', '$http', 'Users', function($scope, $http, Users) { formData = {}; $scope.createUser = function () { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function (data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; }]);
Komprimierung
Das Letzte, was wir tun müssen, ist, den nutzlosen Platz aus dem Code zu entfernen, indem wir ihn komprimieren. Hier kommt das Uglifyjs -Plugin ins Spiel. Bei der Verwendung von UglifyJs m?chten wir, dass Grunzen den endgültigen Prozess der Komprimierung der Anwendung abschlie?en. Daher m?chten wir die Datei mit allen neuen Splei?codes finden, in diesem Fall public/min/app.js
. Um dies zu testen, führen Sie grunt uglify
aus und sehen Sie sich Ihre neu komprimierte Datei an. Im Folgenden finden Sie die relevanten Konfigurationen für diese Aufgabe:
var form = angular.module('ControllerTwo', []) form.factory('Users', function($http) { return { get: function() { return $http.get('/api/users'); }, create: function(userData) { return $http.post('/api/users', userData); }, delete: function(id) { return $http.delete('/api/users/' + id); } }; }); form.controller('InputController', function($scope, $http, Users) { formData = {}; $scope.createUser = function() { if ($scope.formData != undefined) { Users.create($scope.formData) .success(function(data) { $scope.users = data; $scope.formData = {}; $scope.myForm.$setPristine(true); }); } }; });
In diesem Kurs haben wir alle diese Aufgaben getrennt verwendet. Lassen Sie uns nun die zuvor erstellte Standardaufgabe verwenden. Es erm?glicht Grunzen, alle angegebenen Aufgaben einzeln in Registrierungsreihenfolge auszuführen. Führen Sie nun einfach in Ihrem Projekt grunt
aus und Ihr Code wird kommentiert, gesplei?t und komprimiert.
Schlussfolgerung
Ich hoffe, dass Sie mit diesem kurzen Tutorial die Array -Notation gut verstehen k?nnen und warum es wichtig ist, AngularJS -Anwendungskomprimierung sicher zu machen. Wenn Sie neu zu grunzen sind, empfehle ich Ihnen dringend, diese Plugins sowie andere zu probieren, da sie viel Zeit sparen k?nnen. Wie immer k?nnen Sie sich wie immer gerne kommentieren oder wenn Sie Fragen haben, senden Sie mir bitte eine E -Mail an die Adresse in meinem Profil.
FAQ (FAQ) auf dem Kompressionssicheren Winkelcode mit Grunzen
(der gleiche FAQ -Teil sollte hier wie im Originaltext enthalten sein, aber die Sprache ist reibungsloser und natürlicher)
Das obige ist der detaillierte Inhalt von5 Minuten zum min-sicheren Winkelcode mit Grunzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen





Der Müllsammlung von JavaScript verwaltet den Speicher automatisch über einen Tag-Clearing-Algorithmus, um das Risiko eines Speicherlecks zu verringern. Der Motor durchquert und markiert das aktive Objekt aus dem Wurzelobjekt, und nicht markiert wird als Müll behandelt und gel?scht. Wenn das Objekt beispielsweise nicht mehr referenziert wird (z. B. die Variable nach NULL), wird es in der n?chsten Runde des Recyclings freigegeben. Zu den h?ufigen Ursachen für Speicherlecks geh?ren: ① Unger?te Timer oder Event -H?rer; ② Verweise auf externe Variablen in Schlie?ungen; ③ Globale Variablen halten weiterhin eine gro?e Datenmenge. Der V8 -Motor optimiert die Recyclingeffizienz durch Strategien wie Recycling von Generationen, inkrementelle Markierung, paralleles/gleichzeitiges Recycling und verkürzt die Hauptblockierungszeit. W?hrend der Entwicklung sollten unn?tige globale Referenzen vermieden und Objektverb?nde umgehend dekoriert werden, um die Leistung und Stabilit?t zu verbessern.

Es gibt drei g?ngige M?glichkeiten, HTTP-Anforderungen in Node.js zu initiieren: Verwenden Sie integrierte Module, Axios und Knotenfetch. 1. Verwenden Sie das integrierte HTTP/HTTPS-Modul ohne Abh?ngigkeiten, das für grundlegende Szenarien geeignet ist, jedoch eine manuelle Verarbeitung von Datengen?hten und Fehlerüberwachung erfordert, z. 2.Axios ist eine auf Versprechen basierende Bibliothek von Drittanbietern. Es verfügt über eine kurze Syntax und leistungsstarke Funktionen, unterstützt Async/Auseait, automatische JSON -Konvertierung, Interceptor usw. Es wird empfohlen, asynchrone Anforderungsvorg?nge zu vereinfachen. 3.Node-Fetch bietet einen Stil ?hnlich dem Browser-Abruf, basierend auf Versprechen und einfacher Syntax

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

Hallo, JavaScript -Entwickler! Willkommen in den JavaScript -Nachrichten dieser Woche! Diese Woche konzentrieren wir uns auf: Oracas Markenstreit mit Deno, neue JavaScript -Zeitobjekte werden von Browsern, Google Chrome -Updates und einigen leistungsstarken Entwickler -Tools unterstützt. Fangen wir an! Der Markenstreit von Oracle mit dem Versuch von Deno Oracle, ein "JavaScript" -Marke zu registrieren, hat Kontroversen verursacht. Ryan Dahl, der Sch?pfer von Node.js und Deno, hat eine Petition zur Absage der Marke eingereicht, und er glaubt, dass JavaScript ein offener Standard ist und nicht von Oracle verwendet werden sollte

Welches JavaScript -Framework ist die beste Wahl? Die Antwort besteht darin, die am besten geeigneten nach Ihren Bedürfnissen zu w?hlen. 1.React ist flexibel und kostenlos und für mittlere und gro?e Projekte geeignet, für die hohe Anpassungs- und Teamarchitekturf?higkeiten erforderlich sind. 2. Angular bietet vollst?ndige L?sungen, die für Anwendungen auf Unternehmensebene und langfristige Wartung geeignet sind. 3.. Vue ist einfach zu bedienen, geeignet für kleine und mittlere Projekte oder schnelle Entwicklung. Unabh?ngig davon, ob es einen technologischen Stack, die Teamgr??e, der Projektlebenszyklus gibt und ob SSR erforderlich ist, sind auch wichtige Faktoren für die Auswahl eines Rahmens. Kurz gesagt, es gibt keinen absolut besten Rahmen, die beste Wahl ist die, die Ihren Bedürfnissen entspricht.

IIFE (SofortinvokedFunctionExpression) ist ein Funktionsausdruck, der unmittelbar nach der Definition ausgeführt wird und zum Isolieren von Variablen und zur Vermeidung des kontaminierenden globalen Bereichs verwendet wird. Es wird aufgerufen, indem die Funktion in Klammern umwickelt ist, um sie zu einem Ausdruck und einem Paar von Klammern zu machen, gefolgt von ihr, wie z. B. (function () {/code/}) ();. Zu den Kernverwendungen geh?ren: 1.. Variable Konflikte vermeiden und die Duplikation der Benennung zwischen mehreren Skripten verhindern; 2. Erstellen Sie einen privaten Bereich, um die internen Variablen unsichtbar zu machen. 3.. Modularer Code, um die Initialisierung zu erleichtern, ohne zu viele Variablen freizulegen. Zu den allgemeinen Schreibmethoden geh?ren Versionen, die mit Parametern und Versionen der ES6 -Pfeilfunktion übergeben wurden. Beachten Sie jedoch, dass Ausdrücke und Krawatten verwendet werden müssen.

Versprechen ist der Kernmechanismus für den Umgang mit asynchronen Operationen in JavaScript. Das Verst?ndnis von Kettenanrufen, Fehlerbehebung und Kombination ist der Schlüssel zum Beherrschen ihrer Anwendungen. 1. Der Kettenaufruf gibt ein neues Versprechen durch .then () zurück, um asynchrone Prozessverkampferung zu realisieren. Jeder. Dann () erh?lt das vorherige Ergebnis und kann einen Wert oder ein Versprechen zurückgeben; 2. Die Fehlerbehandlung sollte .Catch () verwenden, um Ausnahmen zu fangen, um stille Ausf?lle zu vermeiden, und den Standardwert im Fang zurückgeben, um den Prozess fortzusetzen. 3. Combinatoren wie Promise.All () (erfolgreich erfolgreich erfolgreich nach allen Erfolg), Versprechen.Race () (Die erste Fertigstellung wird zurückgegeben) und Versprechen.Allsettled () (Warten auf alle Fertigstellungen)

Cacheapi ist ein Tool, das der Browser zur Cache -Netzwerkanfragen bereitstellt, das h?ufig in Verbindung mit dem Servicearbeiter verwendet wird, um die Leistung der Website und die Offline -Erfahrung zu verbessern. 1. Es erm?glicht Entwicklern, Ressourcen wie Skripte, Stilbl?tter, Bilder usw. Zu speichern; 2. Es kann die Cache -Antworten entsprechend den Anfragen übereinstimmen. 3. Es unterstützt das L?schen bestimmter Caches oder das L?schen des gesamten Cache. 4.. Es kann Cache -Priorit?ts- oder Netzwerkpriorit?tsstrategien durch Servicearbeiter implementieren, die sich auf Fetch -Ereignisse anh?ren. 5. Es wird h?ufig für die Offline -Unterstützung verwendet, die wiederholte Zugriffsgeschwindigkeit, die Vorspannungs -Schlüsselressourcen und den Inhalt des Hintergrundaktualisierungss beschleunigen. 6. Wenn Sie es verwenden, müssen Sie auf die Cache -Versionskontrolle, Speicherbeschr?nkungen und den Unterschied zum HTTP -Caching -Mechanismus achten.
