Kernpunkte
Louis hat kürzlich im Forum Thema kommentiert. "Sind wir in einem Abpraller von Skriptabhängigkeiten?"
Kurz gesagt - ich stimme zu. Andere waren sich auch einig, einschließlich Webexperten PPK (Angular Fragen ), Jeremy Keith ( Angular Impuls ) und Jake Archibald ( progressive Verbesserung ist immer noch wichtig ).
Es gibt andere Fälle, aber die meisten öffentlich ausgerichteten Websites und Anwendungen fallen nicht in diese Kategorien. Niemand hält Sie daran, Client -Frameworks zu verwenden. Wenn Sie jedoch einen Hammer haben, sieht alles wie ein Nagel aus. Zitieren Sie noch einmal Louis: & gt; Entwickler scheinen sie nur für die Verwendung neuer Tools zu verwenden, nicht weil sie das tatsächliche Problem lösen.
progressive Verbesserung (PE) ist keine Technologie, sondern eine Entwicklungsmethode. Ich habe 2009 einige Tutorials und Beispiele geschrieben, aber dieses Konzept wurde seit 2003 diskutiert. Sie erstellen zunächst eine grundlegende Benutzererfahrungsstufe und fügen dann fortgeschrittenere Funktionen hinzu, wenn Ihr Browser sie unterstützt. Pe PE auf das Extrem der Logik drücken:
Jeder Browser erhält die beste App, die er verarbeiten kann. Möglicherweise gibt es nicht zwei Browser, die genau die gleiche Erfahrung bieten. Mobile-First Responsive Design und weniger verwendete Offline-Priorität sind Beispiele für progressive Verbesserungstechniken. Schauen wir uns die Kritik von PE an.
Zweite Leute wissen, was JavaScript ist. Mit wenigen Browsern können Benutzer JavaScript deaktivieren (einfach) Das ist absolut korrekt. PE -Kritiker kamen dann zu dem Schluss: & gt; diejenigen, die JavaScript nicht haben, bekommen das, was sie verdienen.
Es ist gefährlich anzunehmen, dass JavaScript immer überall und jederzeit das für Ihre Bewerbung erforderliche Niveau erreichen wird. Jeder hat JavaScript, oder? Dies zeigt. Progressive Verbesserung gilt nicht für Benutzer, die JavaScript deaktivieren. Es soll die Benutzererfahrung verbessern, wenn bestimmte JavaScript -Funktionen verfügbar sind. Wenn JavaScript deaktiviert ist, kann die Anwendung eine schlechte Schnittstelle bieten, aber der Benutzer erhält immer noch etwas .
Was meinen wir mit "alt"? Für die meisten Entwickler ist es jeder Browser, der seit mehr als zwölf Monaten veröffentlicht wird. Nicht jeder kann die neuesten und besten Apps verwenden:
Diese Abteilungen sind für Sie möglicherweise keine Rolle. Aber sind sie nie eine Rolle? Progressive Verbesserung macht keine Annahmen über Ihr Publikum. Dies ist bei Client -Frameworks nicht der Fall. Diejenigen, die Ihre Anwendung nicht verwenden können, verschwinden aus dem Serverprotokoll. Es wird sich bald in eine sich selbst erfüllende Prophezeiung verwandeln: "Niemand benutzt unsere App in einem alten Browser, damit wir das weiterhin tun können ..." Mythos: Progressive Verbesserung ist Anti-JavaScript
Mythos: Progressive Verbesserung macht Annahmen über Benutzer und Geräte
. Sie nehmen nichts an - dies ist die Kernvoraussetzung für diese Technologie. Mit JavaScript Frameworks werden Sie fälschlicherweise denken, dass jeder einen leistungsstarken Browser auf einem leistungsstarken Gerät verwendet. Wir haben diese Annahmen schon einmal gemacht. Wie unterscheidet sich das von der Annahme, dass jeder Breitband verwendet? Oder hat jeder mindestens einen 17-Zoll-Bildschirm, der mindestens 960 Pixel breit ist? Oder werden jeder IE6 jetzt und in Zukunft verwenden? Mythos: Progressive Verbesserung bedeutet Unterstützung für veraltete Browser
. Sie können die schlimmsten Browser unterstützen, aber Sie können jede Basis erstellen, die Sie mögen. Zum Beispiel entwickle ich derzeit eine Anwendung, in der AddEventListener für die meisten JavaScript -Läufe erforderlich ist. Daher kann IE8 und unten nicht in der Lage sein, Feature -Verbesserungen anzuzeigen. Ich kann dieses Problem lösen, aber es ist die Investition nicht wert, da es sich um eine Unternehmensanwendung ohne alte IE -Benutzer handelt. IE8 -Benutzer können das System jedoch weiterhin verwenden und es bei Bedarf verbessern. Sie können PE -Technologie verwenden, um Anwendungen zu erstellen, die gleich aussehen. Der Grund für die Verwirrung ist, dass die meisten JavaScript-Frameworks eine Reihe von vorentwickelten Widgets bieten, die gut aussehen. Dieselben Widgets können zunehmend verbesserte Anwendungen verwendet werden. Ohne JS greifen sie jedoch auf die grundlegende HTML -Alternative zurück. Mit PE können Sie auch moderne HTML-, CSS- und JavaScript -APIs verwenden, die in keinem Browser erschienen sind. Betrachten Sie die Fetch -API - eine moderne Alternative zu XMLHTTPrequest. Es unterstützt minimal, aber ich kann es ohne Probleme verwenden, da ich auf XMLHTTPrequest- oder Serveranforderung zurückgreifen kann. Das JavaScript -Framework bleibt in der Gegenwart fest - nicht in der Zukunft.
Mythos: Allmählich behindert die Webentwicklung
browserx . Es wird von einem Hauptkunden verwendet und ist nicht besonders alt. Sie können erwarten, dass die Entwicklungszeit mehrere Tage beträgt, aber es ist möglicherweise nicht möglich, wenn Ihr JavaScript -Framework nicht kompatibel ist. Für Anwendungen, die mit der PE -Technologie entwickelt wurden, können Sie den Browser möglicherweise bereits unterstützen. Weitere Verbesserungen können ohne größere Umschreibungen hinzugefügt werden.
"Bester Weg zum Durchsuchen ..." Nachrichten und Tags.
JavaScript -Framework nützt den Entwicklern hauptsächlich - eher als Benutzer. Sie können kurzfristige Vorteile auf Kosten reduzierter Besucher und schmerzhafte langfristige Aufrechterhaltung bieten. Und vergiss SEO nicht. Google indiziert JavaScript -Seiten, ist jedoch nicht unbedingt in der Lage, jeden logischen Zweig zu verfolgen. Es ist auch schwierig, auf eine bestimmte URL zurückzukehren, es sei denn, Sie schreiben Ihren Code sorgfältig. Progressive Verbesserung ergänzt die Vorteile des Web:
Es gibt mehrere Strategien, um JavaScript -Abhängigkeiten effektiv zu verwalten. Diese Strategien umfassen die Verwendung von Modulbundlern wie Webpack oder Rollup, die alle Abhängigkeiten in eine einzelne Datei mit Paketmanagern wie NPM oder Garn bündeln können, um die Abhängigkeiten zu verwalten und zu aktualisieren. . Implementierung progressiver Verbesserungen in Ihrem JavaScript -Code enthält das Schreiben von Code, die Bereitstellung grundlegender Funktionen für alle Browser und dann schrittweise erweiterte Funktionen zu Browsern, die ihn unterstützen können. Dies kann durch die Verwendung der Funktionserkennung erfolgen, um zu überprüfen, ob der Browser eine Funktion unterstützt, bevor Sie sie verwenden, und sicherzustellen, dass Ihr Code in Browsern, die bestimmte Funktionen nicht unterstützen, elegant herabgestuft werden kann. Client -JavaScript -Frameworks basieren normalerweise stark auf JavaScript -Abhängigkeiten. Diese Frameworks (wie React, Angular und Vue.js) enthalten viele integrierte Funktionen und Bibliotheken, auf die sich Ihr Code verlassen kann. Dies kann die Entwicklung schneller und einfacher machen, kann aber auch zu potenziellen Problemen führen, wenn diese Abhängigkeiten nicht ordnungsgemäß verwaltet werden. progressive Verbesserung kann eine Schlüsselrolle im clientseitigen JavaScript-Framework spielen. Diese Frameworks enthalten häufig Funktionen, mit denen Entwickler inkrementelle Verbesserungen implementieren können, z. Diese Funktionen können dazu beitragen, dass Ihre Webanwendung allen Benutzern unabhängig von der Funktionalität ihres Browsers Kernfunktionen bietet. Ausgewogene JavaScript -Abhängigkeiten und progressive Verbesserungen erfordern sorgfältige Planung und gute Codierungspraktiken. Sie sollten die Abhängigkeiten in Ihrem Code minimieren und sicherstellen, dass sie ordnungsgemäß verwaltet werden. Gleichzeitig sollten Sie hart daran arbeiten, eine inkrementelle Verbesserung zu erzielen, um sicherzustellen, dass Ihre Webanwendung allen Benutzern eine Kernfunktionalität bietet. Dies kann die Verwendung von Merkmalserkennung, eleganten Herabstufungen und anderen Technologien beinhalten. Mythos: JavaScript -Framework -Anwendungen sind cooler
oder genauer gesagt, das Client -Framework steht vor der Spitze der Technologie und drängt den Web vorwärts. Entschuldigung, aber das ist eine Illusion. AngularJS-ähnliche Frameworks implementieren magische Merkmale, aber wenn Sie tiefer graben, verwenden Sie immer noch HTML-, CSS-, JavaScript- und DOM-Operationen. Bestenfalls ist es eine Abstraktion. Im schlimmsten Fall ist es eine Ablenkung. Ihr Kunden -Framework ist nur so gut wie der Browser, der es entwickelt hat. AngularJS 2.0 wird vollständig umgeschrieben, da Merkmale wie Object.Observe () und Webkomponenten nicht häufig waren, wenn AngularJS 1.x freigegeben wurde. Der Rahmen zwingt Sie dazu, alte Technologie zu nutzen, versteckt jedoch die Implementierung von Ihnen. Mit PE können Sie eine moderne API verwenden, ohne Ihre Anwendung zu brechen. Viel Glück beim Upgrade von Angular 1 ...
Dieser Teil ist korrekt - aber nur, wenn Sie Ihre Bewerbung erstellen. Sie können auf eine Reihe von Kontrollpersonen zugreifen, die die anfängliche Entwicklungszeit verkürzen. Sie sind jedoch im Rahmen des Rahmens gefangen, was später zu Problemen führen kann. Angenommen, Ihre Bewerbung ist seit einiger Zeit ausgeführt und der Kunde benötigt Support Mythos: Progressive Verbesserung ist doppelt so
Dies ist das beliebteste Zitat von Kritikern. Die einzigen Leute, die sagen, dass PE überarbeitet ist, sind diejenigen, die es nie versucht haben oder in irgendeiner Weise gescheitert sind. Wenn Sie von Anfang an nicht an PE nachgedacht haben, dauert es nur doppelt so lange. Der Versuch, PE in vorhandene Anwendungen umzubauen, ist zum Scheitern verurteilt - insbesondere für Anwendungen, die auf JavaScript beruhen. Betrachten wir ein einfaches Beispiel, wie z. B. eine Paging -Liste von Suchabfrageergebnissen. Auf der ersten Seite wird alle HTML zurückgegeben. Es ist schnell, JavaScript muss nichts tun. Hinter den Kulissen verwenden wir Datenbankabfragen und fügen die Ergebnisse in die HTML -Vorlage ein. Sie können denselben Dienst schnell anpassen, um die Ergebnisse als JSON -Daten oder zu HTML -Ergebnis zu erhalten, ohne Titel und Fußzeile. Wenn der Benutzer auf "Seite 2" klickt, wird das Ergebnis der zweiten Seite angezeigt: Mit JavaScript können wir Klicks abfangen und die AJAX -Technologie verwenden, um die Ergebnisse der Seite zu erhalten. HTML -Daten können mit InnerHTML in die Seite eingefügt werden. Alternativ können wir Seite 1 als Vorlage für die zurückgegebenen JSON -Daten verwenden.
Dies erfordert mehr Arbeit, aber es ist definitiv nicht doppelt so viel Arbeit. Wir profitieren von Cross-Browser-Fehler-toleranten Lösungen.
Die Logik hinter diesem Argument ist, dass die Website letztendlich veraltet sein wird. Sie können also einen Framework verwenden, der zu einem bestimmten Zeitpunkt auf eine bestimmte Technologie abzielt. Ich hoffe es. Wenn Ihr Code gut ist, wird er viel länger als erwartet verwendet. Schlechter Code überlebt länger, weil niemand ihn berühren will. Mithilfe der progressiven Verbesserung werden Sie jedoch keine anderen Annahmen als das Web als Client/serverbasiertes HTML-basiertes System ergeben. Das Web muss sich grundlegend ändern, damit Ihre Anwendung fehlschlägt - es wird nicht mehr das Web sein!
Zitat ODDZ: & gt; Der Anstieg in den kundenseitigen JavaScript-Frameworks hat Sie zusammen mit anderen "alten Senioren" zu einer Minderheit gemacht.
Es trennt Inhalt, Layout und Funktionalität für einfache Wartung
Nur ein Nachteil: Es ist klar, dass viele Entwickler der fortschreitenden Verbesserung immer noch nicht vertrauen oder verstehen. Es lebe die Erholung der JavaScript -Abhängigkeiten!
Was ist eine JavaScript -Abhängigkeit?
JavaScript -Abhängigkeit bedeutet, dass der JavaScript -Code von anderen JavaScript -Dateien oder Bibliotheken abhängt, die sie normal ausführen können. Wenn beispielsweise eine JavaScript -Datei eine Funktion oder eine Variable verwendet, die in einer anderen Datei oder Bibliothek definiert ist, soll sie von dieser Datei oder Bibliothek abhängen. Abhängigkeiten können Code effizienter und überschaubarer machen, aber sie können auch Komplexität und potenzielle Probleme einführen, wenn sie nicht ordnungsgemäß verwaltet werden.
Progressive Enhancement ist eine Designphilosophie, die zuerst den Kern -Webinhalt betont und dann allmählich detailliertere und komplexere Präsentations- und Funktionen über sie hinzufügt. Im Kontext von JavaScript bedeutet dies, Code zu schreiben, das allen Browsern grundlegende Funktionen bietet und gleichzeitig Browser erweiterte Funktionen bietet, die ihn unterstützen können.
JavaScript -Abhängigkeiten können die Implementierung zunehmend verbessert. Wenn eine JavaScript -Datei stark auf andere Dateien oder Bibliotheken angewiesen ist, die nicht alle Browser unterstützen, bietet sie möglicherweise nicht grundlegende Funktionen für diese Browser. Dies widerspricht dem Prinzip der progressiven Verbesserung, die darauf abzielt, allen Benutzern eine Kernfunktionalität zu bieten.
Fortschrittliche Verbesserung bietet viele Vorteile. Es stellt sicher, dass alle Benutzer unabhängig von der Funktionalität ihres Browsers auf den Kerninhalt und die Funktionen der Webseite zugreifen können. Es fördert auch gute Webpraktiken wie semantisches HTML und die Trennung von Bedenken und macht die Website resistenter gegen potenzielle Probleme mit JavaScript oder CSS.
Während JavaScript -Abhängigkeiten den Code effizienter und überschaubarer machen können, kann er auch Komplexität und potenzielle Probleme einführen. Wenn die Abhängigkeit nicht ordnungsgemäß verwaltet wird, kann dies zu Problemen wie Blähungscode, langsamer Ladezeit und möglichen Konflikten zwischen verschiedenen Dateien oder Bibliotheken führen. Es kann auch den Code schwieriger machen, zu warten und zu debuggen.
Wie man JavaScript -Abhängigkeiten effektiv verwaltet?
Wie kann ich eine progressive Verbesserung in meinem JavaScript -Code erzielen?
Wie besteht die Beziehung zwischen JavaScript-Abhängigkeiten und clientseitigem JavaScript-Framework?
Welche Rolle spielt die progressive Verbesserung im Client JavaScript -Framework?
Wie können Sie JavaScript -Abhängigkeiten und progressive Verbesserungen in meinem Webentwicklungsprojekt ausgleichen?
Das obige ist der detaillierte Inhalt vonDie JavaScript-Abhängigkeits-Rückschläge: Mythos-Busting Progressive Enhancement. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!