HTML5-Tutorium: Canvas: Hello World 03: Unterschied zwischen den Versionen
Kowa (Diskussion | Beiträge) |
Kowa (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(41 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{HTML5-Tutorium:Canvas:HelloWorld:Menü}} | {{HTML5-Tutorium:Canvas:HelloWorld:Menü}} | ||
''' | '''Musterlösung''': [http://glossar.hs-augsburg.de/beispiel/tutorium/html5_canvas/hello_world/html5_canvas_hello_world_03/WebContent/hallo.html <code>hallo.html</code>] | ||
([http://glossar.hs-augsburg.de/beispiel/tutorium/html5_canvas/hello_world/html5_canvas_hello_world_03 SVN-Repository]) | ([http://glossar.hs-augsburg.de/beispiel/tutorium/html5_canvas/hello_world/html5_canvas_hello_world_03 SVN-Repository]) | ||
=Kompression | ==Voraussetzung== | ||
Sie sollten die Inhalte des Tutoriums [[HTML5-Tutorium: Canvas: Hello World 02]] kennen. | |||
==Ziel: Kompression der Hello-World-Anwendung== | |||
Die in [[HTML5-Tutorium: Canvas: Hello World 02|Teil 2]] erstellten CSS- und JavaScript-Dateien der Hello-World-Anwendung | Die in [[HTML5-Tutorium: Canvas: Hello World 02|Teil 2]] erstellten CSS- und JavaScript-Dateien der Hello-World-Anwendung | ||
sollen komprimiert werden, um die Zugriffszeiten zu beschleunigen. Dies erfolgt mit Hilfe des Tools | sollen komprimiert werden, um die Zugriffszeiten zu beschleunigen. Dies erfolgt mit Hilfe des Tools | ||
<code>YUI Compressor</code><ref name="YUI Compressor">[http://developer.yahoo.com/yui/compressor/ YUI Compressor]</ref>. | <code>YUI Compressor</code><ref name="YUI Compressor">[http://developer.yahoo.com/yui/compressor/ YUI Compressor]</ref>. | ||
Zuvor soll der JavaScript-Code aber noch etwas verbessert werden. | |||
==Anwendung „<code>HelloWorldCanvas03</code>“== | |||
===Neues Projekt anlegen=== | |||
Legen Sie ein neues „Statisches Web-Projekt“ mit dem Namen <code>HelloWorldCanvas03</code> an. | |||
Speichern Sie dieses Projekt wie üblich in Ihrem Repository. | |||
===Verbesserung der Implementierung von Teil 2=== | |||
==Verbesserung der Implementierung von Teil 2== | |||
Bevor Sie den CSS- und JavaScript-Code komprimieren, sollten Sie die Implementierung aus Teil 2 des Tutoriums etwas verbessern. | Bevor Sie den CSS- und JavaScript-Code komprimieren, sollten Sie die Implementierung aus Teil 2 des Tutoriums etwas verbessern. | ||
Zeile 49: | Zeile 35: | ||
ein: | ein: | ||
<source lang="javascript"> | <source lang="javascript"> | ||
//Führe die init-Funktion aus, nachdem die HTML-Seite vollständig | // Führe die init-Funktion aus, nachdem die HTML-Seite vollständig | ||
//vom Browser geladen wurde. | // vom Browser geladen wurde. | ||
window.onload = init; | window.onload = init; | ||
</source> | </source> | ||
Zeile 56: | Zeile 42: | ||
sobald die zugehörige HTML-Seite vollständig geladen wurde. | sobald die zugehörige HTML-Seite vollständig geladen wurde. | ||
Zu guter Letzt müssen Sie noch den <code>OK</code>-Button mit | Zu guter Letzt müssen Sie noch den <code>OK</code>-Button mit der <code>sayHello</code>-Methode | ||
verknüpfen, indem Sie folgenden Code '''in den Rumpf''' der <code>init</code>-Funktion einfügen: | verknüpfen, indem Sie folgenden Code '''in den Rumpf''' der <code>init</code>-Funktion einfügen: | ||
<source lang="javascript"> | <source lang="javascript"> | ||
// Interaktive HTML-Formular-Elemente mit JavaScript verknüpfen. | |||
document.getElementById("d_button_ok").onmousedown = sayHello; | |||
</source> | </source> | ||
Dieser Code kann erst ausgeführt werden, nachdem die HTML-Seite vollständig geladen wurde, | Dieser Code kann erst ausgeführt werden, nachdem die HTML-Seite vollständig geladen wurde, | ||
da das HTML-Button-Objekt vorher nicht existiert. Daher muss die <code>init</code>-Funktion | da das HTML-Button-Objekt vorher nicht existiert. Daher muss die <code>init</code>-Funktion | ||
die | die Verknüpfung zwischen Button und Code herstellen. | ||
Hätte man den obigen Code vor die <code>init</code>-Methode | Hätte man den obigen Code vor die <code>init</code>-Methode | ||
eingefügt, hätte der Browser gleich beim Laden der JavaScript-Datei versucht, | eingefügt, hätte der Browser gleich beim Laden der JavaScript-Datei versucht, | ||
Zeile 73: | Zeile 59: | ||
im Repository sichern.''' | im Repository sichern.''' | ||
==Kompression der JavaScript- und CSS-Dateien== | ===Kompression der JavaScript- und CSS-Dateien=== | ||
Die komprimierten JavaScript- und CSS-Dateien werden vom | Die komprimierten JavaScript- und CSS-Dateien werden vom | ||
Zeile 107: | Zeile 93: | ||
<code>all.mim.js</code> noch nicht gibt. | <code>all.mim.js</code> noch nicht gibt. | ||
===Build-Skript ausführen=== | ====Build-Skript ausführen==== | ||
Bei der [[Installation von Eclipse]] sollten Sie den „YUI Compressor“ installieren. | Bei der [[Installation von Eclipse]] sollten Sie den „YUI Compressor“ [[Installation von Eclipse#YUI_Compressor|installieren]] und [[Konfiguration von Eclipse#YUI_Compressor|konfigurieren]]. | ||
Aufgabe dieses Tools ist es, die beiden Dateien <code>all.min.css</code> und | Aufgabe dieses Tools ist es, die beiden Dateien <code>all.min.css</code> und | ||
<code>all.mim.js</code> zu erstellen. Sie enthalten | <code>all.mim.js</code> zu erstellen. Sie enthalten | ||
jeweils den Code aller CSS- bzw. JavaScript-Dateien, die sich im Ordner <code>css</code> bzw. <code>js</code> befinden. | jeweils den Code aller CSS- bzw. JavaScript-Dateien, die sich im Ordner <code>css</code> bzw. <code>js</code> befinden. | ||
Leerzeichen, Kommentare und andere überflüssige Informationen werden entfernt um Platz zu sparen und damit die Downloadzeiten zu reduzieren. | Leerzeichen, Kommentare und andere überflüssige Informationen werden entfernt um Platz zu sparen und damit die Downloadzeiten zu reduzieren. | ||
Man kann allerdings erzwingen, dass bestimmte Kommentare (z.B. Lizenzinformationen) erhalten bleiben. | Man kann allerdings erzwingen, dass bestimmte Kommentare (z.B. Lizenzinformationen) erhalten bleiben. | ||
Nach Installation und Konfiguration des „YUI Compressor“ kann irgendein Web-Projekt mittels eines Klicks auf den Projektnamen im Projektexplorer selektiert werden. | |||
auf das „grüner Kreis mit weißem Pfeil und Werkzeugkasten“ werden für | Mittels eines zweiten Klicks auf das „grüner Kreis mit weißem Pfeil und Werkzeugkasten“ werden für dieses Projekt | ||
die Dateien <code>all.min.css</code> und <code>all.min.js</code> erstellt und die | die Dateien <code>all.min.css</code> und <code>all.min.js</code> erstellt und entweder in die Verzeichnisse | ||
<code>WebContent/css</code> und <code>WebContent/js</code> oder | |||
– sofern dies im Build-Skript konfiguriert wurde – ins Projekt-Verzeichnis des Apache-Servers kopiert. | |||
Wenn man mehrere externe Tools verwendet, muss man den Drop-Down-Pfeil rechts neben dem Icon „grüner Kreis mit weißem Pfeil und Werkzeugkasten“ | Wenn man mehrere externe Tools verwendet, muss man den Drop-Down-Pfeil rechts neben dem Icon „grüner Kreis mit weißem Pfeil und Werkzeugkasten“ | ||
klicken und dann das Tool <code>Compress</code> klicken (nachdem man zuvor im | klicken und dann das Tool <code>Compress</code> klicken (nachdem man zuvor im Projektexplorer ein Projekt selektiert hat). | ||
===Ergebnis des Build-Skripts=== | ====Ergebnis des Build-Skripts==== | ||
Nach Ausführen des Build-Skripts sollten die Dateien <code>all.min.css</code> und <code>all.min.js</code> existieren und damit die Datei | Nach Ausführen des Build-Skripts sollten die Dateien <code>all.min.css</code> und <code>all.min.js</code> existieren und damit die Datei | ||
<code>hello.html</code> ausgeführt werden können. | <code>hello.html</code> ausgeführt werden können. | ||
====<code>all.min.css</code>==== | =====<code>all.min.css</code>===== | ||
<source lang="css"> | <source lang="css"> | ||
#d_name{width:185px}#d_canvas{margin-top:10px;border-color:#bbb;border-width:2px;border-style:solid} | #d_name{width:185px}#d_canvas{margin-top:10px;border-color:#bbb;border-width:2px;border-style:solid} | ||
</source> | </source> | ||
====<code>all.min.js</code>==== | =====<code>all.min.js</code>===== | ||
<source lang="javascript"> | <source lang="javascript"> | ||
"use strict";var | "use strict";var g_canvas,g_context;window.onload=init;function init(){g_canvas=document.getElementById("d_canvas")... | ||
</source> | |||
==Testen und speichern== | ===Testen und speichern=== | ||
Nun sollt Ihre Web-Anwendung wieder funktionieren. | Nun sollt Ihre Web-Anwendung wieder funktionieren. | ||
Testen Sie sie und speichern Sie sie in Ihrem Repository. | Testen Sie sie und speichern Sie sie in Ihrem Repository. | ||
== | ==Quellen== | ||
<references/> | <references/> | ||
<ol> | <ol> | ||
<li value=" | <li value="2"> {{Quelle|Kowarschick, W.: Multimedia-Programmierung}}</li> | ||
</ol> | </ol> | ||
==Fortsetzung des Tutoriums== | |||
Sie sollten nun [[HTML5-Tutorium: Canvas: Hello World 04|Teil 4 des Tutoriums]] bearbeiten. | |||
[[Kategorie: HTML5-Tutorium: Canvas: Hello World]][[Kategorie: HTML5-Beispiel]][[Kategorie:Kapitel:Multimedia-Programmierung:Beispiele]] | [[Kategorie: HTML5-Tutorium: Canvas: Hello World]][[Kategorie: HTML5-Beispiel]][[Kategorie:Kapitel:Multimedia-Programmierung:Beispiele]] | ||
Aktuelle Version vom 23. September 2016, 13:36 Uhr
Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen:
Korrektheit: 4 (großteils überprüft) |
Umfang: 4 (unwichtige Fakten fehlen) |
Quellenangaben: 5 (vollständig vorhanden) |
Quellenarten: 5 (ausgezeichnet) |
Konformität: 4 (sehr gut) |
HTML-Tutorium Hello World: JavaScript | Canvas | SVG
Musterlösung: hallo.html
(SVN-Repository)
Voraussetzung
Sie sollten die Inhalte des Tutoriums HTML5-Tutorium: Canvas: Hello World 02 kennen.
Ziel: Kompression der Hello-World-Anwendung
Die in Teil 2 erstellten CSS- und JavaScript-Dateien der Hello-World-Anwendung
sollen komprimiert werden, um die Zugriffszeiten zu beschleunigen. Dies erfolgt mit Hilfe des Tools
YUI Compressor
[1].
Zuvor soll der JavaScript-Code aber noch etwas verbessert werden.
Anwendung „HelloWorldCanvas03
“
Neues Projekt anlegen
Legen Sie ein neues „Statisches Web-Projekt“ mit dem Namen HelloWorldCanvas03
an.
Speichern Sie dieses Projekt wie üblich in Ihrem Repository.
Verbesserung der Implementierung von Teil 2
Bevor Sie den CSS- und JavaScript-Code komprimieren, sollten Sie die Implementierung aus Teil 2 des Tutoriums etwas verbessern.
Die HTML-Datei hallo.html
soll JavaScript-frei werden, d.h. HTML-Code und JavaScript-Code sollen noch besser
getrennt werden.
Gehen Sie folgendermaßen vor. Löschen Sie zunächst in der HTML-Datei hallo.html
onload="init()"
aus dembody
-Element sowieonmousedown="sayHello()"
input
-Element vom Typbutton
.
Fügen Sie anschließend in der JavaScript-Datei main.js
folgenden Code vor der Definition der init
-Funktion
ein:
// Führe die init-Funktion aus, nachdem die HTML-Seite vollständig
// vom Browser geladen wurde.
window.onload = init;
Die Funktion window.onload
wird vom Browser, sofern sie definiert wurde, automatisch ausgeführt,
sobald die zugehörige HTML-Seite vollständig geladen wurde.
Zu guter Letzt müssen Sie noch den OK
-Button mit der sayHello
-Methode
verknüpfen, indem Sie folgenden Code in den Rumpf der init
-Funktion einfügen:
// Interaktive HTML-Formular-Elemente mit JavaScript verknüpfen.
document.getElementById("d_button_ok").onmousedown = sayHello;
Dieser Code kann erst ausgeführt werden, nachdem die HTML-Seite vollständig geladen wurde,
da das HTML-Button-Objekt vorher nicht existiert. Daher muss die init
-Funktion
die Verknüpfung zwischen Button und Code herstellen.
Hätte man den obigen Code vor die init
-Methode
eingefügt, hätte der Browser gleich beim Laden der JavaScript-Datei versucht,
diese Verknüpfung herzustellen. Das wäre aber schief gegangen, das das Button-Objekt
zu diesem Zeitpunk noch nicht existiert.
Wie gewohnt müssen Sie Ihren Code nun testen und – sobald er fehlerfrei läuft – im Repository sichern.
Kompression der JavaScript- und CSS-Dateien
Die komprimierten JavaScript- und CSS-Dateien werden vom
build
-Skript (siehe nächsten Abschnitt) in den Dateien
css/main.css
undjs/main.js
abgelegt. Um diese Dateien in der HTML-Datei hallo.html
zu verwenden, müssen die Zeilen
<!-- Laden aller CSS-Dateien -->
<link rel="stylesheet" href="css/main.css"/>
<!-- Laden aller JavaScript-Dateien -->
<script type="text/javascript" src="js/main.js"></script>
in
<!-- Laden aller CSS-Dateien -->
<link rel="stylesheet" href="css/all.min.css"/>
<!--<link rel="stylesheet" href="css/main.css" />-->
<!-- Laden aller JavaScript-Dateien -->
<script type="text/javascript" src="js/all.min.js"></script>
<!--<script type="text/javascript" src="js/main.js" ></script>-->
abgeändert werden.
Wenn man nun das Projekt testet, passiert nicht mehr viel, da es die Dateien all.min.css
und
all.mim.js
noch nicht gibt.
Build-Skript ausführen
Bei der Installation von Eclipse sollten Sie den „YUI Compressor“ installieren und konfigurieren.
Aufgabe dieses Tools ist es, die beiden Dateien all.min.css
und
all.mim.js
zu erstellen. Sie enthalten
jeweils den Code aller CSS- bzw. JavaScript-Dateien, die sich im Ordner css
bzw. js
befinden.
Leerzeichen, Kommentare und andere überflüssige Informationen werden entfernt um Platz zu sparen und damit die Downloadzeiten zu reduzieren.
Man kann allerdings erzwingen, dass bestimmte Kommentare (z.B. Lizenzinformationen) erhalten bleiben.
Nach Installation und Konfiguration des „YUI Compressor“ kann irgendein Web-Projekt mittels eines Klicks auf den Projektnamen im Projektexplorer selektiert werden.
Mittels eines zweiten Klicks auf das „grüner Kreis mit weißem Pfeil und Werkzeugkasten“ werden für dieses Projekt
die Dateien all.min.css
und all.min.js
erstellt und entweder in die Verzeichnisse
WebContent/css
und WebContent/js
oder
– sofern dies im Build-Skript konfiguriert wurde – ins Projekt-Verzeichnis des Apache-Servers kopiert.
Wenn man mehrere externe Tools verwendet, muss man den Drop-Down-Pfeil rechts neben dem Icon „grüner Kreis mit weißem Pfeil und Werkzeugkasten“
klicken und dann das Tool Compress
klicken (nachdem man zuvor im Projektexplorer ein Projekt selektiert hat).
Ergebnis des Build-Skripts
Nach Ausführen des Build-Skripts sollten die Dateien all.min.css
und all.min.js
existieren und damit die Datei
hello.html
ausgeführt werden können.
all.min.css
#d_name{width:185px}#d_canvas{margin-top:10px;border-color:#bbb;border-width:2px;border-style:solid}
all.min.js
"use strict";var g_canvas,g_context;window.onload=init;function init(){g_canvas=document.getElementById("d_canvas")...
Testen und speichern
Nun sollt Ihre Web-Anwendung wieder funktionieren. Testen Sie sie und speichern Sie sie in Ihrem Repository.
Quellen
- Kowarschick (MMProg): Wolfgang Kowarschick; Vorlesung „Multimedia-Programmierung“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2018; Quellengüte: 3 (Vorlesung)
Fortsetzung des Tutoriums
Sie sollten nun Teil 4 des Tutoriums bearbeiten.