{"id":32655,"date":"2025-05-13T23:33:18","date_gmt":"2025-05-14T02:33:18","guid":{"rendered":"https:\/\/mastertrend.info\/?p=32655"},"modified":"2026-04-28T14:50:55","modified_gmt":"2026-04-28T17:50:55","slug":"erstellen-sie-ihre-erste-web-app","status":"publish","type":"post","link":"https:\/\/mastertrend.info\/de\/crea-tu-primera-app-web\/","title":{"rendered":"Erstellen Sie Ihre erste Web-App und meistern Sie die Programmierung ohne Stress \ud83d\ude80\ud83d\udcbb"},"content":{"rendered":"<h2 class=\"table-content-link\">Erstellen Sie Ihre erste Web-App: Notizen + Z\u00e4hler einfach und schnell \ud83d\udcdd\u26a1<\/h2>\n<p>Der Einstieg in die Programmierung kann angesichts der vielen zu ber\u00fccksichtigenden Sprachen, Frameworks und Methoden \u00fcberw\u00e4ltigend erscheinen. Manchmal scheint es einfacher, alles an eine KI zu delegieren. Mach dir keine Sorge! Programmieren f\u00fcr das Web kann einfach und unterhaltsam sein und \u2013 das Beste von allem \u2013 v\u00f6llig kostenlos! \ud83c\udf10\u2728<\/p>\n<h2 id=\"what-you-rsquo-ll-build\">Was Sie bauen werden<\/h2>\n<p>Indem Sie diesem Tutorial folgen, erstellen Sie eine einfache Webanwendung zum Speichern von Textnotizen und zum Z\u00e4hlen von Zeichen und W\u00f6rtern.<\/p>\n<p>Die App beh\u00e4lt die Daten bei, sodass der Text auch beim Neuladen oder erneuten \u00d6ffnen der Seite noch vorhanden ist. So k\u00f6nnen Sie bequem jeden Text speichern, auf den Sie sp\u00e4ter zur\u00fcckgreifen m\u00f6chten, z. B. Adressen, URLs usw. \ud83d\udcc4\ud83d\udd17<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><source media=\"(min-width: 768px)\" data-=\"\" \/><source media=\"(min-width: 481px)\" data-=\"\" \/><source media=\"(min-width: 0px)\" data-=\"\" \/><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/01\/Crea-Tu-Primera-Aplicacion-Web-Una-App-de-Notas-Sencilla.png\" alt=\"Ein Beispiel f\u00fcr eine einfache textbasierte Webanwendung, die Notizen, einschlie\u00dflich eines Kalendereintrags und einer Liste von URLs, anzeigt.\" width=\"960\" height=\"569\" title=\"\"> <\/picture><\/figure>\n<p>Es z\u00e4hlt auch Zeichen und W\u00f6rter, was eine gute Einf\u00fchrung in die Verarbeitung von Zeichenfolgen (Texten) darstellt. Nat\u00fcrlich ist die App sehr einfach: Das ist der Zweck! Aber mit diesem Tutorial lernen Sie die Grundlagen der Entwicklung einer Webanwendung und dann steht Ihnen die Welt offen. \ud83e\uddaa\ud83d\udcbb<\/p>\n<h2 id=\"how-you-rsquo-ll-build-it\">Wie werden Sie es bauen?<\/h2>\n<p>Obwohl Webanwendungen sehr vielf\u00e4ltig sind, umfassen sie typischerweise drei Haupttechnologien: HTML, CSS und JavaScript. Es ist wichtig, dass Sie ihre Rollen verstehen, bevor Sie beginnen. \ud83d\udcda<\/p>\n<ul>\n<li>HTML: Mit Hypertext Markup Language k\u00f6nnen Sie die Struktur Ihres Inhalts definieren. Damit k\u00f6nnen Sie einen Text entsprechend seiner Bedeutung markieren und beispielsweise angeben, ob es sich um einen Absatz, eine \u00dcberschrift oder einen Eintrag in einer Liste handelt.<\/li>\n<li>CSS: Mit Cascading Style Sheets k\u00f6nnen Sie Ihren Inhalten Stil verleihen. Mit dieser Sprache k\u00f6nnen Sie einen Absatz gr\u00fcn einf\u00e4rben, alle Ihre Links fett formatieren oder eine Seitenleiste neben Ihrem Hauptartikel positionieren. \ud83c\udfa8<\/li>\n<li>JavaScript: Mit dieser Programmiersprache k\u00f6nnen Sie Ihrer Website Funktionen hinzuf\u00fcgen. Sie k\u00f6nnen Schaltfl\u00e4chen so konfigurieren, dass Teile Ihres Dokuments beim Anklicken angezeigt oder ausgeblendet werden, oder Sie k\u00f6nnen ein vollwertiges Textverarbeitungsprogramm oder Videospiel implementieren. \ud83c\udfae<\/li>\n<\/ul>\n<p>Er <a href=\"https:\/\/web.dev\" target=\"_blank\" rel=\"noopener noreferrer\">website.dev<\/a> (escrito por miembros del equipo de Chrome) y MDN, la Red de Desarrolladores de Mozilla, son dos excelentes fuentes de informaci\u00f3n sobre tecnolog\u00edas web fundamentales.<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><source media=\"(min-width: 768px)\" data-=\"\" \/><source media=\"(min-width: 481px)\" data-=\"\" \/><source media=\"(min-width: 0px)\" data-=\"\" \/><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/01\/1736598858_798_Crea-Tu-Primera-Aplicacion-Web-Una-App-de-Notas-Sencilla.png\" alt=\"Die Homepage der Website web.dev mit Lernressourcen f\u00fcr HTML, CSS und JavaScript.\" width=\"1388\" height=\"734\" title=\"\"> <\/picture><\/figure>\n<h2 id=\"the-app-structure\">Die Struktur der App<\/h2>\n<p>Die App, die Sie erstellen, besteht aus drei einfachen Dateien: index.html, styles.css und script.js. \ud83d\uddc2\ufe0f<\/p>\n<p>Zum Ausf\u00fchren der App sind keine besonderen Anforderungen erforderlich, Sie ben\u00f6tigen lediglich einen Webbrowser. Es gibt keine Backend-Funktionalit\u00e4t, daher ben\u00f6tigen Sie keine Skriptsprache wie PHP oder einen lokalen Webserver. Sobald Sie fertig sind, k\u00f6nnen Sie die <a title=\"Wie man einen lokalen Linux-Webserver unter Windows 11 einrichtet\" href=\"https:\/\/mastertrend.info\/de\/lokaler-linux-webserver\/\" target=\"_blank\" rel=\"noopener\" data-wpil-monitor-id=\"5749\">index.html-Datei direkt in Ihrem Browser<\/a> und alles wird gut. \ud83d\ude0a<\/p>\n<p>Es ist wichtig zu beachten, dass diese App Ihren Text speichert, ohne ihn in eine bestimmte Datei auf der Festplatte zu schreiben, da JavaScript nicht auf das Dateisystem zugreifen kann. Verwendet die Web Storage API, eine leistungsstarke Alternative zu Cookies. \ud83c\udf6a\ud83d\udcbe<\/p>\n<h2 id=\"how-to-build-the-note-taker\">So erstellen Sie den Notiznehmer<\/h2>\n<p>Erstellen Sie die folgenden drei Dateien im selben Verzeichnis und \u00f6ffnen Sie dann index.html in einem Webbrowser. Alternativ k\u00f6nnen Sie die Dateien herunterladen von <a href=\"https:\/\/github.com\/bobbykjack\/text\" target=\"_blank\" rel=\"noopener\">dieses GitHub-Repository<\/a>. \ud83d\udce5<\/p>\n<h3 id=\"building-the-structure-with-html\">Aufbau der Struktur mit HTML<\/h3>\n<p>Die Datei index.html definiert die Struktur des Inhalts Ihrer App in HTML. F\u00fcgen Sie Verweise auf die anderen beiden Dateien ein, damit ein Browser sie zum Endprodukt kombinieren kann.<\/p>\n<p>Wie alle HTML-Dokumente umfasst die Struktur der obersten Ebene einen Kopfabschnitt mit Metadaten und einen Hauptabschnitt mit dem eigentlichen Inhalt, der auf der Seite angezeigt wird:<\/p>\n<pre><code class=\"hljs html\"><span class=\"hljs-meta\">html<\/span>&gt;\r\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span>&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Kopf<\/span>&gt;<\/span>\r\n    ...\r\n<span class=\"hljs-tag\"><span class=\"hljs-name\">Kopf<\/span>&gt;<\/span><\/code><\/pre>\n<p><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">K\u00f6rper<\/span>&gt;<\/span><br \/>\n&#8230;<br \/>\n<span class=\"hljs-tag\"><span class=\"hljs-name\">K\u00f6rper<\/span>&gt;<\/span><br \/>\n<span class=\"hljs-tag\"><span class=\"hljs-name\">html<\/span>&gt;<\/span><\/p>\n<pre><code class=\"hljs html\"><\/code><\/pre>\n<pre><code class=\"hljs html\"><\/code><\/pre>\n<p>Die Metadaten im Kopf sind sehr kurz und enthalten nur einen Seitentitel (der in der Titelleiste Ihres Browsers angezeigt wird) und einen Verweis auf die Datei styles.css:<\/p>\n<pre><code class=\"hljs html\">    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Titel<\/span>&gt;<\/span>Text<span class=\"hljs-tag\"><span class=\"hljs-name\">Titel<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Link<\/span> <span class=\"hljs-attr\">relativ<\/span>=<span class=\"hljs-string\">&quot;Stylesheet&quot;<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">&quot;styles.css&quot;<\/span> \/&gt;<\/span>\r\n<\/code><\/pre>\n<p>Der K\u00f6rper ist komplizierter, aber es gibt nur wenige wichtige Teile:<\/p>\n<pre><code class=\"hljs html\">    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">Ausweis<\/span>=<span class=\"hljs-string\">&quot;Schalter&quot;<\/span>&gt;<\/span>\r\n        W\u00f6rter: <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Spanne<\/span> <span class=\"hljs-attr\">Ausweis<\/span>=<span class=\"hljs-string\">&quot;W\u00f6rter&quot;<\/span>&gt;<\/span>0<span class=\"hljs-tag\"><span class=\"hljs-name\">Spanne<\/span>&gt;<\/span>\r\n        \/ Zeichen: <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Spanne<\/span> <span class=\"hljs-attr\">Ausweis<\/span>=<span class=\"hljs-string\">&quot;Zeichen&quot;<\/span>&gt;<\/span>0<span class=\"hljs-tag\"><span class=\"hljs-name\">Spanne<\/span>&gt;<\/span>\r\n    <span class=\"hljs-tag\"><span class=\"hljs-name\">div<\/span>&gt;<\/span><\/code><\/pre>\n<p><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Textbereich<\/span> <span class=\"hljs-attr\">Ausweis<\/span>=<span class=\"hljs-string\">&quot;Text&quot;<\/span> <span class=\"hljs-attr\">Autofokus<\/span>=<span class=\"hljs-string\">\u00ab1\u00bb<\/span>&gt;<\/span><span class=\"hljs-tag\"><span class=\"hljs-name\">Textbereich<\/span>&gt;<\/span><\/p>\n<pre><code class=\"hljs html\"><\/code><\/pre>\n<p><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Skript<\/span> <span class=\"hljs-attr\">Quelle<\/span>=<span class=\"hljs-string\">\u00abscript.js\u00bb<\/span>&gt;<\/span><span class=\"hljs-tag\"><span class=\"hljs-name\">Skript<\/span>&gt;<\/span><\/p>\n<pre><code class=\"hljs html\"><\/code><\/pre>\n<pre><code class=\"hljs html\"><\/code><\/pre>\n<p>Das Div-Element enth\u00e4lt die Wort- und Zeichenanzahl der App. Es befindet sich oben in der Web-App und wird bei jeder Text\u00e4nderung aktualisiert.<\/p>\n<p>Beachten Sie die ID-Attribute, die f\u00fcr den Vorgang von entscheidender Bedeutung sind. Der Wert einer ID muss eindeutig sein, damit die App ihn zur Identifizierung eines bestimmten Artikels verwenden kann. Auf diese Weise k\u00f6nnen wir diese Elemente besser gestalten und sie beim Hinzuf\u00fcgen von Funktionen gezielter einsetzen.<\/p>\n<p>Der Textbereich ist ein integriertes Formularelement, mit dem Sie einfachen Text in einen Browser eingeben k\u00f6nnen. Mit der Autofokus-Funktion k\u00f6nnen Sie sofort mit dem Schreiben beginnen, wenn die Seite geladen ist. Schlie\u00dflich verweist die Seite auf die JavaScript-Datei script.js.<\/p>\n<p>An diesem Punkt k\u00f6nnen Sie die Datei index.html in einem Browser \u00f6ffnen. Im Moment wird es nichts bewirken und nicht einmal gut aussehen, aber es ist hilfreich, Ihre App in jeder Phase zu testen, um sicherzustellen, dass die Grundlagen wie erwartet funktionieren.<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><source media=\"(min-width: 768px)\" data-=\"\" \/><source media=\"(min-width: 481px)\" data-=\"\" \/><source media=\"(min-width: 0px)\" data-=\"\" \/><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/01\/1736598858_678_Crea-Tu-Primera-Aplicacion-Web-Una-App-de-Notas-Sencilla.png\" alt=\"Eine Ansicht der Notizen-Web-App mit Standardbrowserstilen, die alles in der oberen linken Ecke gruppiert zeigt.\" width=\"960\" height=\"569\" title=\"\"> <\/picture><\/figure>\n<h3 id=\"making-things-look-good-with-css\">Mit CSS gut aussehen lassen<\/h3>\n<p>Mit CSS k\u00f6nnen Sie Teile Ihrer Webseite gestalten, indem Sie diese Teile gezielt ausw\u00e4hlen und Werte f\u00fcr Eigenschaften wie Schriftgr\u00f6\u00dfe und Hintergrundfarbe angeben. Diese Beispiel-App ben\u00f6tigt kein besonders ausgefeiltes Design, da ihre Benutzeroberfl\u00e4che sehr einfach ist. Mit einem Hauch von Stil k\u00f6nnen wir die Ecken und Kanten jedoch gl\u00e4tten. \ud83c\udfa8\u2728<\/p>\n<p>Gestalten Sie zun\u00e4chst den K\u00f6rper, um das Gesamtdesign zu definieren:<\/p>\n<pre><code class=\"hljs css\"><span class=\"hljs-selector-tag\">K\u00f6rper<\/span> {\r\n    <span class=\"hljs-selector-tag\">Marge<\/span>: 0;\r\n    <span class=\"hljs-selector-tag\">Polsterung<\/span>: 0;\r\n    <span class=\"hljs-selector-tag\">Anzeige<\/span>: <span class=\"hljs-selector-tag\">Netz<\/span>;\r\n    <span class=\"hljs-selector-tag\">Mindesth\u00f6he<\/span>: 100<span class=\"hljs-selector-tag\">vh<\/span>;\r\n    <span class=\"hljs-selector-tag\">Raster-Vorlagen-Zeilen<\/span>: <span class=\"hljs-selector-tag\">Mindestinhalt<\/span> 1<span class=\"hljs-selector-tag\">fr<\/span>;\r\n}\r\n<\/code><\/pre>\n<p>Este CSS utiliza la disposici\u00f3n en cuadr\u00edcula para posicionar los conteos de palabras y caracteres en una fila estrecha sobre el textarea. La propiedad grid-template-rows especifica que la fila del conteo debe ser lo m\u00e1s corta posible (min-content) y el textarea debe llenar el espacio restante (1fr).<\/p>\n<p>Die Z\u00e4hlerzeile hat einen grundlegenden Stil, um sie vom Rest des Textes zu unterscheiden, haupts\u00e4chlich durch ihren Hintergrund:<\/p>\n<pre><code class=\"hljs css\"><span class=\"hljs-selector-id\">#-Z\u00e4hler<\/span> {\r\n    <span class=\"hljs-selector-tag\">Schriftfamilie<\/span>: <span class=\"hljs-selector-tag\">serifenlos<\/span>;\r\n    <span class=\"hljs-selector-tag\">Hintergrundfarbe<\/span>: <span class=\"hljs-selector-id\">#f7f7f7<\/span>;\r\n    <span class=\"hljs-selector-tag\">Textausrichtung<\/span>: <span class=\"hljs-selector-tag\">Center<\/span>;\r\n    <span class=\"hljs-selector-tag\">Breite<\/span>: 100%;\r\n    <span class=\"hljs-selector-tag\">Polsterung<\/span>: 0<span class=\"hljs-selector-class\">.5em<\/span> 0;\r\n}\r\n<\/code><\/pre>\n<p>Schlie\u00dflich wird der Textbereich so gestaltet, dass lesbarer Text mit gen\u00fcgend Platz zum Atmen angezeigt wird. Die Linie, die die Z\u00e4hlungen vom Text trennt, ist tats\u00e4chlich die obere Grenze dieses Textbereichs.<\/p>\n<pre><code class=\"hljs css\"><span class=\"hljs-selector-tag\">Textbereich<\/span> {\r\n    <span class=\"hljs-selector-tag\">Breite<\/span>: 100%;\r\n    <span class=\"hljs-selector-tag\">H\u00f6he<\/span>: 100%;\r\n    <span class=\"hljs-selector-tag\">Schriftgr\u00f6\u00dfe<\/span>: 16<span class=\"hljs-selector-tag\">pt<\/span>;\r\n    <span class=\"hljs-selector-tag\">Polsterung<\/span>: 1<span class=\"hljs-selector-tag\">In<\/span>;\r\n    <span class=\"hljs-selector-tag\">Kartongr\u00f6\u00dfe<\/span>: <span class=\"hljs-selector-tag\">Rahmenbox<\/span>;\r\n    <span class=\"hljs-selector-tag\">Gliederung<\/span>: 0;\r\n    <span class=\"hljs-selector-tag\">Grenze<\/span>: <span class=\"hljs-selector-tag\">keiner<\/span>;\r\n    <span class=\"hljs-selector-tag\">Rand oben<\/span>: 1<span class=\"hljs-selector-tag\">px<\/span> <span class=\"hljs-selector-tag\">solide<\/span> <span class=\"hljs-selector-id\">#999<\/span>;\r\n}<\/code><\/pre>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><source media=\"(min-width: 768px)\" data-=\"\" \/><source media=\"(min-width: 481px)\" data-=\"\" \/><source media=\"(min-width: 0px)\" data-=\"\" \/><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/01\/1736598859_152_Crea-Tu-Primera-Aplicacion-Web-Una-App-de-Notas-Sencilla.png\" alt=\"Die Notiz-App mit benutzerdefinierten Stilen zeigt oben die Strichliste und darunter einen Textbereich in voller Gr\u00f6\u00dfe an.\" width=\"960\" height=\"569\" title=\"\"> <\/picture><\/figure>\n<h3 id=\"adding-functionality-with-javascript\">Hinzuf\u00fcgen von Funktionalit\u00e4t mit JavaScript<\/h3>\n<p>Wenn Struktur und Stil vorhanden sind, k\u00f6nnen Sie die Funktionalit\u00e4t hinzuf\u00fcgen: den Code, der daf\u00fcr sorgt, dass diese einfache App tats\u00e4chlich etwas tut. \ud83d\udee0\ufe0f<\/p>\n<p>Bevor Sie mit dem Schreiben auch nur des einfachsten Codes beginnen, sollten Sie sich dar\u00fcber im Klaren sein, was er tun soll. In diesem Fall gibt es nur ein paar allgemeine Anforderungen:<\/p>\n<ul>\n<li>Speichern Sie den eingegebenen Text und laden Sie ihn bei Bedarf neu.<\/li>\n<li>Aktualisieren Sie die Zeichen- und Wortanzahl, um Echtzeitstatistiken bereitzustellen. \ud83d\udcca<\/li>\n<\/ul>\n<p>Beide Anforderungen beinhalten die Aktualisierung von Elementen im Dokument. Das Skript beginnt also damit, mithilfe der Methode getElementById Verweise auf diese Knoten abzurufen:<\/p>\n<pre><code class=\"hljs js\"><span class=\"hljs-keyword\">Konstante<\/span> W\u00f6rter = <span class=\"hljs-built_in\">dokumentieren<\/span>.getElementById(<span class=\"hljs-string\">&quot;W\u00f6rter&quot;<\/span>);\r\n<span class=\"hljs-keyword\">Konstante<\/span> Zeichen = <span class=\"hljs-built_in\">dokumentieren<\/span>.getElementById(<span class=\"hljs-string\">&quot;Zeichen&quot;<\/span>);\r\n<span class=\"hljs-keyword\">Konstante<\/span> Textbereich = <span class=\"hljs-built_in\">dokumentieren<\/span>.getElementById(<span class=\"hljs-string\">&quot;Text&quot;<\/span>);\r\n<\/code><\/pre>\n<p>Beachten Sie, dass W\u00f6rter, Zeichen und Text die IDs ihrer jeweiligen Elemente im Dokument sind, die in der HTML-Datei mit dem ID-Attribut zugewiesen werden.<\/p>\n<p>Als n\u00e4chstes muss die App reagieren, wenn der Text ge\u00e4ndert wird:<\/p>\n<pre><code class=\"hljs js\">textarea.addEventListener(<span class=\"hljs-string\">&quot;Eingang&quot;<\/span>, <span class=\"hljs-function\"><span class=\"hljs-keyword\">Funktion<\/span>(<span class=\"hljs-params\">ev<\/span>) <\/span>{ localStorage.setItem(<span class=\"hljs-string\">&quot;Text&quot;<\/span>, ev.Zielwert); update_counts(ev.target.value); });\r\n<\/code><\/pre>\n<p>Ein Ereignis-Listener ist eine Funktion, die JavaScript automatisch ausf\u00fchrt, wenn ein bestimmtes Ereignis eintritt. In diesem Fall h\u00e4ngen wir an den Textarea-Knoten einen Listener an, der ausgef\u00fchrt wird, wenn das Ereignis \u201eInput\u201c eintritt. Das hei\u00dft, wenn jemand mit dem Textbereich interagiert.<\/p>\n<p>Als n\u00e4chstes verwenden wir die Web Storage API, um den aktuellen Inhalt des Textbereichs zu speichern, der von ev.target.value stammt. In dieser Struktur ist ev ein Objekt, das das Ereignis darstellt, das den Listener ausgel\u00f6st hat, ev.target ist der Knoten, der das Ereignis empfangen hat, und ev.target.value ist der Text dieses Textbereichs.<\/p>\n<p>Die Methode \u201esetItem\u201c verwendet zwei Parameter: einen Schl\u00fcsselnamen, der den Daten zugeordnet werden soll, und die tats\u00e4chlich zu speichernden Daten.<\/p>\n<p>Als n\u00e4chstes rufen wir update_counts() auf und \u00fcbergeben denselben Text. Wir werden diese Funktion gleich erkl\u00e4ren.<\/p>\n<p>Da wir den Text nun speichern, m\u00f6chten Sie ihn beim \u00d6ffnen oder Neuladen der App m\u00f6glicherweise erneut laden. Wir k\u00f6nnen uns darum k\u00fcmmern, indem wir einen anderen Listener verwenden:<\/p>\n<pre><code class=\"hljs js\"><span class=\"hljs-built_in\">Fenster<\/span>.addEventListener(<span class=\"hljs-string\">&quot;laden&quot;<\/span>, <span class=\"hljs-function\"><span class=\"hljs-keyword\">Funktion<\/span>(<span class=\"hljs-params\">ev<\/span>) <\/span>{\r\n    <span class=\"hljs-keyword\">var<\/span> Text = localStorage.getItem(<span class=\"hljs-string\">&quot;Text&quot;<\/span>); Textbereich.Wert = Text; Anzahl aktualisieren(Text); });\r\n<\/code><\/pre>\n<p>Dieser Listener verarbeitet das Ladeereignis, das beim Fensterobjekt auftritt, einer Darstellung des Browserfensters auf oberster Ebene. Wenn das Fenster geladen wird, gibt ein Aufruf von getItem() den gespeicherten Textwert aus dem lokalen Speicher zur\u00fcck. Dieser Code setzt dann den Wert des Textbereichs auf den geladenen Text und ruft, wie der Listener oben, update_counts() mit diesem Text auf.<\/p>\n<p>Die restliche Arbeit wird in der Funktion update_counts() erledigt, die wie folgt aussieht:<\/p>\n<pre><code class=\"hljs js\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">Funktion<\/span>\u00a0<span class=\"hljs-title\">Anzahl aktualisieren<\/span>(<span class=\"hljs-params\">Text<\/span>) <\/span>{ chars.innerHTML = text.length; W\u00f6rter.innerHTML = Text.geteilt(<span class=\"hljs-string\">' '<\/span>).L\u00e4nge; }\r\n<\/code><\/pre>\n<p>Im Gegensatz zu einem Textbereich verf\u00fcgt normaler Text nicht \u00fcber eine Werteigenschaft, daher legen wir stattdessen die Eigenschaft \u201einnerHTML\u201c fest. Die L\u00e4ngeneigenschaft einer Zeichenfolge ist eine einfache schreibgesch\u00fctzte Eigenschaft, die uns die Anzahl der Zeichen angibt.<\/p>\n<p>text.split(&#039; &#039;) teilt die Zeichenfolge an den Leerzeichen und gibt das Ergebnis als Array von Zeichenfolgen zur\u00fcck. Wie Zeichenfolgen haben Arrays eine L\u00e4ngeneigenschaft, die uns die Anzahl der Elemente in einem Array angibt.<\/p>\n<p>Wenn Sie diesen Code testen, werden Ihnen jedoch m\u00f6glicherweise einige Fehler auffallen:<\/p>\n<ol>\n<li>Ein einzelnes Wort in einer Zeile wird nicht richtig gez\u00e4hlt, da es keine Leerzeichen umgibt.<\/li>\n<li>Wenn \u00fcberhaupt kein Text vorhanden ist, wird aufgrund der Aufteilungsfunktion nur ein einzelnes Wort gemeldet.<\/li>\n<\/ol>\n<p>Um das erste Problem zu l\u00f6sen, k\u00f6nnen Sie anstelle eines Leerzeichens einen regul\u00e4ren Ausdruck verwenden (\\s bedeutet \u201eein Leerzeichen\u201c). Um das zweite Problem zu l\u00f6sen, filtern Sie leere Zeichenfolgen aus dem Ergebnis heraus:<\/p>\n<pre><code class=\"hljs js\">    W\u00f6rter.innerHTML = Text.geteilt(<span class=\"hljs-regexp\">\/\\S\/<\/span>).Filter(<span class=\"hljs-function\"><span class=\"hljs-keyword\">Funktion<\/span>(<span class=\"hljs-params\">N<\/span>) <\/span>{ <span class=\"hljs-keyword\">zur\u00fcckkehren<\/span> n != <span class=\"hljs-string\">''<\/span>; }).L\u00e4nge;\r\n<\/code><\/pre>\n<p>Wenn Sie diese Zeile nicht vollst\u00e4ndig verstehen, schauen Sie sich die MDN-Seiten an f\u00fcr <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/split\" target=\"_blank\" rel=\"noopener noreferrer\">Teilt<\/a> Und <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Array\/filter\" target=\"_blank\" rel=\"noopener noreferrer\">Filter<\/a>.<\/p>\n<figure><picture><source media=\"(min-width: 1024px)\" data-=\"\" \/><source media=\"(min-width: 768px)\" data-=\"\" \/><source media=\"(min-width: 481px)\" data-=\"\" \/><source media=\"(min-width: 0px)\" data-=\"\" \/><img decoding=\"async\" style=\"display: block; height: auto; max-width: 100%;\" src=\"https:\/\/mastertrend.info\/wp-content\/uploads\/2025\/01\/1736598859_129_Crea-Tu-Primera-Aplicacion-Web-Una-App-de-Notas-Sencilla.png\" alt=\"Die Webanwendung mit Beispieltext, der die genaue Zeichen- und Wortanzahl anzeigt.\" width=\"960\" height=\"569\" title=\"\"> <\/picture><\/figure>\n<hr \/>\n<p>Mit nur wenigen Dateien k\u00f6nnen Sie viele n\u00fctzliche Webanwendungen erstellen. Sie k\u00f6nnen diese einfache Notizen-App auch erweitern, um weitere Funktionen hinzuzuf\u00fcgen. Sie k\u00f6nnen beispielsweise die <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Window\/location\" target=\"_blank\" rel=\"noopener\" data-schema-attribute=\"mentions\">window.location-Eigenschaft<\/a> um die aktuelle URL abzurufen und mehrere Notizen zu unterst\u00fctzen, indem Sie den Namen variieren, den Sie an localStorage.setItem \u00fcbergeben. \ud83d\uddd2\ufe0f\ud83c\udf0d<\/p>","protected":false},"excerpt":{"rendered":"<p>Erstellen Sie Ihre erste Web-App und speichern Sie Notizen mit einem Wortz\u00e4hler. Lernen Sie einfach, schnell und kostenlos! \ud83c\udf10\ud83d\udd8b\ufe0f\u2728<\/p>","protected":false},"author":1,"featured_media":49198,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ai_generated_summary":"","iawp_total_views":39,"jnews-multi-image_gallery":[],"jnews_single_post":[],"jnews_primary_category":[],"jnews_social_meta":[],"jnews_review":[],"enable_review":"","type":"","name":"","summary":"","brand":"","sku":"","good":[],"bad":[],"score_override":"","override_value":"","rating":[],"price":[],"jnews_override_counter":[],"footnotes":""},"categories":[1435],"tags":[1445,1558],"class_list":["post-32655","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriales","tag-evergreencontent","tag-techtips"],"_links":{"self":[{"href":"https:\/\/mastertrend.info\/de\/wp-json\/wp\/v2\/posts\/32655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mastertrend.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mastertrend.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mastertrend.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mastertrend.info\/de\/wp-json\/wp\/v2\/comments?post=32655"}],"version-history":[{"count":0,"href":"https:\/\/mastertrend.info\/de\/wp-json\/wp\/v2\/posts\/32655\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mastertrend.info\/de\/wp-json\/wp\/v2\/media\/49198"}],"wp:attachment":[{"href":"https:\/\/mastertrend.info\/de\/wp-json\/wp\/v2\/media?parent=32655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mastertrend.info\/de\/wp-json\/wp\/v2\/categories?post=32655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mastertrend.info\/de\/wp-json\/wp\/v2\/tags?post=32655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}