3 η Διάλεξη: Προγραμματισμός στην πλευρά του πελάτη: JavaScript, DHTML

Σχετικά έγγραφα
Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 3: JavaScript & DHTML

ΕΠΛ 012. JavaScripts

JAVASCRIPT 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

JAVASCRIPT EVENTS. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

Εισαγωγή στην πληροφορική

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Γαβαλάς Δαμιανός

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

Περιεχόμενα. Πρόλογος...11

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Στην τεχνολογία των CSS, οι κανόνες στυλ (style

Javascript. Πανεπιστήμιο Πελοποννήσου Τμήμα Επιστήμης & Τεχνολογίας Τηλεπικοινωνιών. Ευάγγελος Α. Κοσμάτος

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Πανεπιστήμιο Αιγαίου. Χειμερινό εξάμηνο. Σχολή Κοινωνικών Επιστημών Τμήμα Πολιτισμικής Τεχνολογίας Και Επικοινωνίας

WEB HTML. Web HTML MIDI. Web 5.1: HTML LAN

Παιχνίδια σε Javascript

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

PHP 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Προγραμματισμός Ιστοσελίδων: Javascript II

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

2. Επιλέξτε την σωστή ετικέτα HTML που προσφέρει το μεγαλύτερο φόντο κειμένου. <head> <heading> <h6> <h1>

1. Απαιτήσεις εργασίας

Αντικειµενοστρεφής Προγραµµατισµός

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια

Δημοσίευση στο Διαδίκτυο

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΙ Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών. Επώνυμο Όνομα: Α.Μ. : Εξάμηνο : Αίθουσα

Περιεχόμενα. Πρόλογος... xiii

DOM. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

CSS 3. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

Δικτυακά Πολυμέσα Ι: 2 η Εργασία. Να δημιουργήσετε μια HTML σελίδα η οποία να περιέχει μία φόρμα που να μοιάζει με αυτή της παρακάτω εικόνας:

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

Διαδικτυακά Πολυμέσα και Γραφικά. Javascript και Web. Στελιος Σφακιανάκης Φθινόπωρο 2018

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Μηχανή αναζήτησης βασισμένη σε AJAX και Soundex. Πτυχιακή Εργασία

ASPA: A translator from ASP to PHP

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Στελεχώνου ε το σή ερα το τώρα και το αύριο!

Κατανεμημένα Συστήματα. Javascript LCR example

Εισαγωγή στην ASP.NET. Σημειώσεις Σεμιναρίου Επιμέλεια: Βασίλης Κόλιας 4.0

Αντικειμενοστρεφής Προγραμματισμός

Εργαστήριο 9. Styling with Javascript

Διάλεξη 2η Εισαγωγή στο CSS

Εργαστήριο Εκπαιδευτικού Υλικού και Εκπαιδευτικής Μεθοδολογίας (Ε.Ε.Υ.Ε.Μ.)

ΚΕΝΤΡΟ ΠΛΗ.ΝΕ.Τ. Ν. ΦΛΩΡΙΝΑΣ

2.1. Εντολές Σχόλια Τύποι Δεδομένων

ικτυακά Πολυμέσα Ι (Β Έτος, 3ο εξ) ιάλεξη #8η: Javascript: Τεχνικές εντοπισμού/διόρθωσης λαθών, τελεστές, δομές ελέγχου, βρόχοι επανάληψης

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Γενικά (για τις γραπτές εξετάσεις)

Ετικέτες HTML. <!-->: Τα σχόλια χρησιμοποιούνται για να γράφουμε σημειώσεις μέσα στον

3. ΕΙΣΑΓΩΓΗ ΣΤΟ CSS ΓΙΩΡΓΟΣ ΓΙΑΝΝΑΚΑΚΗΣ, ΜΑΝΩΛΗΣ ΤΣΙΚΝΑΚΗΣ

Φόρμες. Γενικοί κανόνες. Η ετικέτα <form>

ΚΕΦΑΛΑΙΟ 5 Σχεδιασμός και υλοποίηση διαδικτυακών εφαρμογών

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

Αντώνης Χρυσόπουλος Κατερίνα Κυπριώτη Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ PHP. PHP 2: The Return of PHP Η Δευτέρα Παρουσίαση

ADMAN Interstitial Creatives

App Inventor 3ο Μάθημα (Ζάρια - επέκταση)

Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word

Φύλλο Εργασίας Τίτλος: Εισαγωγική Εφαρμογή

Πληροφορίες για το μάθημα

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Άσκηση 6 Επαναληπτική Άσκηση HTML

Macromedia DreamWeaver Παρουσίαση εργαλείου σχεδίασης διεπαφής χρήστη

1. (25%) Αναφέρετε πέντε (5) «καλoύς» κανόνες (πρακτικές) σχεδίασης web sites (όχι περισσότερες από δύο γραμμές για κάθε κανόνα)

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ. Πτυχιακή Εργασία

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην HTML. Άννα Κεφάλα Παναγιώτα Μιχόλια

Βασικά στοιχεία του CSS

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Javascript events. part 01

1. <body> 2. <header> 3. <h1> My Page </h1> 4. </header> 5. <section>

<a href=" στο κείμενο</a>.

Διάλεξη 6η CSS Advanced

Ποιες είναι οι κύριες ετικέτες που χρησιμοποιεί η HTML για την περιγραφή της συνολικής δομής μιας ιστοσελίδας;

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Βασικά Στοιχεία της Java

Δομές ελέγχου ροής προγράμματος

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Η γλώσσα CSS χρησιμοποιείται για τη μορφοποίηση ιστοσελίδων και η σύνταξη της είναι αρκετά απλή.

Σημειώσεις D3. Προφανώς εάν προσθέταμε μία ή περισσότερες παραγράφους, πριν το script, θα άλλαζε το text στην πρώτη.

Transcript:

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 3 η Διάλεξη: Προγραμματισμός στην πλευρά του πελάτη: JavaScript, DHTML Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@cti.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1

Προγραμματισμός στην πλευρά του πελάτη Διαφάνεια 2 HTML σελίδα με κώδικα javascript Διαδίκτυο Πελάτης Web Browser Επικοινωνία HTTP Εξυπηρετητής Web Server Τελική HTML σελίδα Χρήστης ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Επεξεργασία JavaScript

Προγραμματισμός στην πλευρά του πελάτη Τα ενεργά στοιχεία (κώδικας) «κατεβαίνει» στον web browser μαζί µε τη στατική πληροφορία (HTML) O Browser πρέπει να μπορεί να εντοπίσει και να εκτελέσει τα ενεργά στοιχεία προγράμματα ύο κατηγορίες τεχνολογιών: 1. Οκώδικαςείναιπρο-μεταγλωττισμένος, ο browser τον «ερμηνεύει» (εκτελεί), π.χ. Java Applets 2. Κώδικας σεναρίου (script), ο browser τον επεξεργάζεται και αν είναι συντακτικά σωστός τον εκτελεί, π.χ. Javascript, VBscript) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 3

Προγραμματισμός στην πλευρά του πελάτη Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 4

Καταλληλότητα, Πλεονεκτήματα, Μειονεκτήματα Κατάλληλη τεχνολογία όπου: Ελέγχεται η είσοδος του χρήστη (form validation) Απαιτούνται πολύπλοκες λειτουργίες στον πελάτη (πχ. παιχνίδια) Πλεονεκτήματα: Ταχύτερες λόγο τοπικής εκτέλεσης υνατότητα εκτέλεσης χωρίς συνεχή σύνδεση server/client υνατότητες, ευελιξία, ευχρηστία και καλαισθησία ιστοσελίδων Οικομικότερες Καμία εμπλοκή µε server Μειονεκτήματα: Οκώδικαςείναιορατός ενμπορείναέχειπρόσβασηστοτοπικόfile system εν τρέχουν σε όλους τους clients (browsers) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 5

Υπάρχουσες Τεχνολογίες Active-X controls: προγράμματα που τρέχουν σε browser. ουλεύουν µόνο µε Microsoft Internet Explorer σε Windows (τεχνολογία Microsoft) Flash: τεχνολογία για δημιουργία animation εφέ σε ιστοσελίδες. Απαιτεί λιγότερο bandwidth από ένα video που πρέπει να γίνει «download» πλαίσιο µε πλαίσιο (δουλεύει ικανοποιητικά και σε αργές Internet συνδέσεις). Απαιτείται ειδικό λογισµικό εγκατεστηµένο στον client (plug-in στον browser). Τέτοια plug-ins είναι δωρεάν διαθέσιµα για τους περισσότερους browsers. Ωστόσο δεν μπορεί να υποτεθεί ότι όλοι οι χρήστες «βλέπουν» τα flash animations. Για το σχεδιασμό Flash animations απαιτείται ειδικό λογισμικό (της Micromedia). Αν και τα Flash animations µπορεί να είναι εντυπωσιακά, μπορεί να είναι και ενοχλητικά (π.χ. Κάποιος θέλει να αναζητήσει κάποια συγκεκριμένη πληροφορία και θα πρέπει να περιμένει να «κατέβει» το animation. VBScript: μιαγλώσσαβασισμένηστηvisual Basic, µε παρόμοιες δυνατότητες µε τη Javascript, αλλά δουλεύει µόνο στον Internet Explorer (τεχνολογία Microsoft). Για να δουλεύει ο κώδικας σε όλους τους browsers πρέπει να χρησιμοποιηθεί Javascript. Java Applets Javascript Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 6

Javascript Γλώσσα σεναρίου (script language) Αναπτύχθηκε από τη Netscape Τρέχει σε όλους τους browsers (cross-platform) Γράφεται απευθείας μέσα σε HTML έγγραφα µε ή χωρίς χρήση ειδικού λογισμικού (HTML authoring tools, script editors) Πλεονεκτήματα/Μειονεκτήματα client-side programming Αντίδραση/επεξεργασία στις κινήσεις του χρήστη (user actions) Επεξεργασία/έλεγχος δεδομένων εισόδου του χρήστη (user input) Δυναμική εμφάνιση (συγγραφή) HTML Βελτίωση ευχρηστίας, ευελιξίας πλοήγησης Εύκολη στην εκμάθηση/χρήση Όχι όμως πλήρης γλώσσα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 7

Χρήση της JavaScript ΜικράκομμάτιακώδικασεέναHTML αρχείο π.χ. εμφάνιση σειράς αριθμών (1, 2,, 100) Εμφάνιση «δυναμικού» περιεχομένου Αντιλαμβάνεται και αντιδρά σε γεγονότα π.χ. ο χρήστης επιλέγει ένα link Αλλάζει τα περιεχόμενα σε html elements Ελέγχει δεδομένα που δίνονται σε μία φόρμα πριν αυτή γίνει submit Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 8

Εισαγωγή scripting language <script language= JavaScript > <!-- document.write( Hello World with JavaScript ); //--> </script> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 9

Τοποθέτηση scripting language Head section Η ετικέτα head φορτώνεται πρώτα Για scripts που εκτελούνται μετά την κλήση τους Κατάλληλο για συναρτήσεις Body Section Εκτελούνται όταν η σελίδα φορτώνεται External script <script language= JavaScript src= global.js ></script> Επιτρέπονται πολλαπλά «scripts» σε ένα αρχείο Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 10

Μεταβλητές Ξεκινούν με γράμμα ή _ Case sensitive Ορισμός var name (var optional) Ανάθεση τιμής name = Alex mynumber = 15 Τοποθέτηση σε κείμενο "My name is " + name Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 11

Μεταβλητές - τύποι δεδομένων Αριθμοί : ακέραιοι ή κινητής υποδιαστολής Boolean : true / false Strings : ανάμεσασεμονάήδιπλάεισαγωγικά Αντικείμενα (objects) Null : διαφορετικός από τη μηδενική τιμή Σημαίνει ότι ΔΕΝ έχει τιμή Undefined / Empty : αμέσως μετά τη δημιουργία! Δεν είναι απαραίτητο να δηλώνεται ο τύπος πριν την ανάθεση τιμής Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 12

Τελεστές Ισότητα == Ανισότητα!= Λογικό and && Λογικό or Λογικό not! Ένωση strings + Μοναδιαία αύξηση/ μείωση ++ / -- Ανάθεση =, +=, -=, *=, /= Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 13

If else if (condition) { statements1; } else { statements2; }! else if! varname = (condition)?trueval:falseval mycar = (ferrari>porche)? RedFerrari : ColPorche Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 14

Switch --- Select switch (expression) { case label1: statements1; break; case label2: statements2; break; default: statements; } Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 15

For for (initial; condition; incr) { statements; } for (i=0;i<10;i++) { document.write(i) } Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 16

Do while while (condition) { statements } do { statements; } while (condition) do { document.write(i + "<br>") i=i+1 } while (i < 10) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 17

Έξοδος από βρόχο σχόλια Break : εγκαταλείπει την εκτέλεση του βρόχου Continue : εγκαταλείπει την απλή επανάληψη του βρόχου Σχόλια // /* */ Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 18

Ορισμός συναρτήσεων JavaScript function mfun(arg1,arg2) { statements; } function noarg() { document.write(15) } function print(msg) { document.write(msg) } function sum(a, b) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 19 { c = a + b return c }

Κλήση συναρτήσεων noarg() print( Hello ) mysum = sum(23, 7) alert( This is alert ) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 20

JavaScript Objects Υπάρχουν δύο τύποι αντικειμένων Εγγενή της γλώσσας πχ. Math, Date, String, Array Συγκεκριμένα για μία εφαρμογή (πχ. Browser) πχ. Window, Document, Form Όλα τα αντικείμενα έχουν Ιδιότητες : objectname.propertyname Μεθόδους : objectname.methodname()! Case sensitive Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 21

DOM -Document Object Model Το DOM είναι μια πλατφόρμα και μια ανεξάρτητη από γλώσσα προγραμματισμού διεπαφή που επιτρέπει στα προγράμματα και τα scripts να έχουν πρόσβαση δυναμικά και να ενημερώνουν το περιεχόμενο, τη δομή, και το ύφος ενός εγγράφου. To HTML DOC αποτελείται από μία δεντρική δομή όπου στοιχεία ενσωματώνονται σε άλλα στοιχεία. Τα στοιχεία αυτά μπορούν να προσπελαστούν από τo DOM δέντρο. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 22

Ιεραρχική δομή αντικειμένων στη JavaScript Προσπέλαση αντικειμένων window.document.form1.text1.value document.form1.text1.value document.form1.images.myimage.src document.form1.images.myimage.width Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 23

Παραδείγματα κλάσεων-αντικειμένων Η κλάση του παραθύρου (window) έχει: χαρακτηριστικά ένα url, το όνομα του παραθύρου (name), ένα μήνυμα που θα εμφανιστεί στη µπάρα κατάστασης του παραθύρου (status), το πλάτος (width), το ύψος (height) κ.α. μεθόδους την open() και την close(). Με την εντολή window.open ( http://www.unipi.gr, my_window ) δημιουργείται και ανοίγει ένα στιγμιότυπο (instance) παραθύρου, που δείχνει στη διεύθυνση http://www.unipi.gr και έχει όνομα my_window. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 24

String object Ιδιότητες length Μέθοδοι bold(), blink(), charat(), indexof(), split(), substring(), tolowercase(), touppercase(), indexof(str) : επιστρέφει την πρώτη εμφάνιση του str substring(a,b) : τους χαρακτήρες από το a th μέχρι και το b-1 th (η αρίθμηση από το 0) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 25

Math object Ιδιότητες E, LN2, LN10, PI, SQRT2, Μέθοδοι abs(x), cos(x), sin(x), ceil(x), floor(x), max(x,y), min(x,y), random() random() : ένα τυχαίο αριθμό μεταξύ του 0 και 1 Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 26

Date object Μέθοδοι Date() : επιστρέφει ένα αντικείμενο Date getdate() : επιστρέφει τη μέρα (1-31) getmonth(), getday(), getyear() gethours(), gettime() setdate(), setmonth(), sethours() tostring() : επιστρέφει την ημερομηνία ως string Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 27

Window object alert("hello Students") prompt("what is your name?","") prompt( question", "given_answer") confirm( Do you agree?") Select Ok or Cancel location="string.html" window.status = Your message" window.open("window2.html") A new window is opened onclick() Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 28

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 29 Ιδιότητες Window object

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 30 Ιδιότητες Document Object

Form object <form name= myform > <input type= text name= myage > document.forms[0].myage.focus() document.myform.myage.focus() document.myform.myage.value onsubmit() Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 31

Χειρισμός γεγονότων Γεγονότα πάτημα κουμπιού : click ποντίκι πάνω σε κάποιο στοιχείο : mouseover αποστολή δεδομένων φόρμας : submit ολοκλήρωση του φορτώματος όλων των αντικειμένων (όχι παρέμβαση του χρήστη) : load Handler : oneventname π.χ. onclick, onmouseover, onsubmit, onload Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 32

Γεγονότα Η JavaScript μπορεί να παρακολουθεί γεγονότα (ενέργειες του χρήστη) που συμβαίνουν πάνω σε αντικείμενα της σελίδας HTML. Η εμφάνιση / εκτέλεση γεγονότων προκαλούν την εκτέλεση ενεργειών ή συναρτήσεων. Π.χ. εάν θέλουμε όταν συμβεί ένα γεγονός onclick να εκτελεστεί µία συνάρτηση µε όνοµα my_function(), θα πρέπει στη δήλωση του πλήκτρου (button) να συμπεριλάβουμε την εντολή onclick= my_function(). Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 33

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 34 Γεγονότα

Παραδείγματα onclick <input type= "button" value= "Click Me!" onclick= "alert( 'Hi again' )"> onclick= myfunction() onmouseover / onmouseout function mover() { if ( event.srcelement.id ) event.srcelement.style.color = event.srcelement.id; } function mout() { if ( event.srcelement.id ) event.srcelement.innertext = event.srcelement.id; } onload <body onload= "starttimer()"> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 35

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 36 Dynamic HTML - DHTML

DHTML Σκοπός της οι σελίδες να είναι δυναμικές Συνδυασμός από HTML, CSS και JavaScript Χρησιμοποιεί τα objects της JavaScript Κυρίως στηρίζεται στο Document Object Model Οριοθέτηση (positioning) Μεταβολή style Χειρισμός γεγονότων (event handling) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 37

Χρήση του DOM <div id= mydiv style= position:absolute; visibility:visible; left:400px; top:100px; > </div> <a href= www.ceid.upatras.gr >CEID</a> Άμεσα προσπελάσιμα ως objects από την JavaScript μέσω του DOM MS+NS: document.getelementbyid( mydiv )= hidden ; Mέσω JavaScript μπορούμε να αλλάξουμε τις ιδιότητες ενός style και να δούμε τις αλλαγές αυτόματα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 38

Δυναμική οριοθέτηση <p id = "ptext" style = "position: absolute; left: 0; color: blue"> Welcome! </p> _pt = document.getelementbyid( mydiv ); _pt.style.fontsize = myvar/3; _pt.style.left = myvar; _pt.innerhtml = "<BR> Font size: " + myvar + "px"; Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 39

Κρύψιμο Αντικειμένων Style= visibility: {visible; hidden; inherit} ; Style= display: {inline; block; none;} ; Ποια η διαφορά ανάμεσα στις δύο ιδιότητες; Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 40

Μεταβολή style Επιλογή φόντου <BODY bgcolor="red"> inpcol = prompt( «Select background color", "" ); document.body.style.backgroundcolor = inpcol; Επιλογή μεγέθους κειμένου ptext.classname = inputclass; <style>.bigtext { font-size: 3em; font-weight: bold }.smalltext { font-size:.5em } </style> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 41