SlideShare une entreprise Scribd logo
1  sur  43
UE: DEVELOPPEMENT WEB
ET MULTIMEDIA 2
(1)Programmation Web2
(2)Atelier Développement Web
et Multimédia II
Technologies de l’Informatique (TI)
TC-Semestre 2
Mohamed Mhamdi
Iset de Sousse(Tunisie)
Plan du cours
Les ateliers
Programmation Web2 (les
fondamentaux)
Mohamed Mhamdi
Iset de Sousse
page web statique - page web
dynamique
• Une page web statique est une page web dont le
contenu ne varie pas en fonction des
caractéristiques de la demande, c'est-à-dire qu'à
un moment donné tous les internautes qui
demandent la page reçoivent le même contenu.
• À l'inverse, une page web dynamique est générée
à la demande et son contenu varie en fonction
des caractéristiques de la demande (heure,
adresse IP de l'ordinateur du demandeur,
formulaire rempli par le demandeur, etc.) qui ne
sont connues qu'au moment de sa consultation.
Mode de communication Client-
serveur
(Ce mode permet d’expliquer le dynS vs dynC )
• La signification d’une page dynamique ne peut
s’expliquer que dans le contexte d’une communication
client-serveur
• environnement client-serveur= un mode de
communication à travers un réseau entre
plusieurs programmes ou logiciels.
– l'un, qualifié de client, envoie des requêtes.
– l'autre ou les autres, qualifiés de serveurs, attendent les
requêtes des clients et y répondent(réponse!!!!).
– Plusieurs types de serveurs:
• un serveur de données à communiquer des données stockées dans une base de données
• un serveur de fichiers permet de stocker et consulter des fichiers sur le réseau
• un serveur de messagerie électronique envoie des mails à des clients de messagerie ;
• un serveur web publie des pages web demandées par des navigateurs web ;
réponse à la requête et type du
dynamisme
• Une page dynamique contient forcement une
réponse à une requête émanée du client:
– En cas où la réponse est générée par le serveur on
parle alors d’une page dynamique coté serveur
– En cas où la réponse est générée par le client on
parle du dynamisme coté client
Serveur Web
Structure
• Composition d’un serveur Web:
– Un daemon HTTP + virtual host(protocole HTTP):
écoute+analyse+extraction+envoi réponse
– Autres composants Système (moteur de rendu+
moteur de script) : vérification de l’existence d’un
script+ exécution du script+génération de la page
web dynamique;
– Pages Web Statiques (HTML+CSS)
– Pages Web
Dynamiques(HTML+CSS+Scripts+autres ..)
Serveur Web
La structure Interne d’un serveur Web(1)
Serveur Web
Moteur de rendu(2)
Avec un rendu côté client:
• votre demande initiale
(Get) charge la mise en page
(HTML), le code CSS et code
JavaScript de la page HTML.
• Mais tout ou partie du
contenu ne sera pas inclus.
• Au lieu de cela, le JavaScript
fait une autre demande,
obtient une réponse
(probablement en XML ou
JSON), et génère le code
HTML approprié.
Avec un rendu côté serveur, la
demande initiale charge:
-La mise en page,
- le code CSS,
-le contenu de la pages.
Rendering coté client ou serveur ?
La décision architecturale la plus importante
À prendre pour votre projet! Tendance:Hybride
Rendu du serveur suite à la demande
d’une page web(1)
• Les différents cas:
– ScriptServ+html: (rendu=html)
– ScriptServ+ScriptCli+Html: (rendu=ScriptCli+html)
– ScriptServ+Applet+Html: (rendu=Applet+html)
– Applet + Html: (rendu=Applet+html)
– ScriptCli+html: (rendu=ScriptCli+html)
– ScriptCli+applet+HTML:
(rendu=ScriptCli+applet+html)
Rendu du serveur suite à la demande
d’une page web(2)
Certains langages permettent de développer à la fois les aspects client et
serveur. C'est le cas d'Ocsigen, de Hop ou bien encore du Server-Side
JavaScript.
Rendu du serveur suite à la demande
d’une page web(3)
Dynamisme coté serveur vs coté client
• À l'inverse, une page
web dynamique est
générée à la demande
et son contenu varie en
fonction des
caractéristiques de la
demande
• on utilise des langages
qui offrent la possibilité
de réagir à certaines
actions de l'utilisateur
sans avoir à questionner
le serveur
Technologies pour pages Web
dynamiques(1)
(1)Comme il Il y a des langages pour la programmation des
pages web statiques qui sont Les langages de balisage
(HTML, XHTML,XML)
(2)Il ya d’autres qui sont fait pour la programmation des pages
dynamiques
(3)En réalité il ne s’agit pas uniquement des langages mais de
technologies
• Ce type de Technologies est utilisé pour une plus grande
interaction entre un client et un serveur
• Nous allons tracer un bref aperçu de différentes
technologies possibles dans la programmation dynamique
côté client ou côté serveur.
Langages pour pages Web
dynamiques(2)
• Insertion d'objets
– Images ( gifs animés.)
– Multimédia (son ou vidéo)
– Animation Flash (animations dans
un format vectoriel propriétaire +ActionScript(1))
– Applet Java (appliquette)
– ActiveX (applications développée par Microsoft.)
Partie2: Programmation web
côté client
Programmation web côté client
• Côté client (en général le navigateur web): on
utilise des langages qui offrent la possibilité de
réagir à certaines actions de l'utilisateur:
– En exploitant la puissance de traitement locale du
client (eclatement au niveau du traitement)
– sans avoir à questionner le serveur.(parfois)
Les technologies de programmation
Web dynamique côté client
• Les technologies natives aux navigateurs
– HTML5 : le langage client du Web
– CSS 3 pour la présentation
– JavaScript et Framework JavaScript pour
l'interactivité
• Les technologies à base de plugins
– Applet Java
– Contrôle ActiveX
– Flash
Scripts vs Applets(1)
Code source Java Byte code (.class)
0: iconst_2
1: istore_1
2: iload_1
3: sipush 1000
6: if_icmpge 44
9: iconst_2
10: istore_2
11: iload_2
12: iload_1
13: if_icmpge 31
16: iload_1
17: iload_2
18: irem
19: ifne 25
22: goto 38
25: iinc 2, 1
28: goto 11
31: getstatic #84; // Field java/lang/System.out:Ljava/io/PrintStream;
34: iload_1
35: invokevirtual #85; // Method java/io/PrintStream.println:(I)V
38: iinc 1, 1
41: goto 2
44: return
outer:
for (int i = 2; i < 1000; i++)
{
for (int j = 2; j < i; j++)
{
if (i % j == 0)
continue outer; }
System.out.println (i);
}
Scripts vs Applets(2)
(1)Intaller java
(2) Activer javaplugin dans le
browser: appel du panneau
de configuration java
demarrer/programme/java/c
onfiguration java/
securité/activer le contenu
java dans le navigateur
(3) Autoriser l’execution des
applets java:
Chrome/paramètres/plug-
ins/ autoriser tout le contenu
du plug-in
Scripts vs Applets(3)
<html>
<!–- COMP519 js03.html 11.10.14 -->
<head>
<title>Folding Puzzle</title>
</head>
<body>
<script type="text/javascript">
var distanceToSun = 93.3e6*5280*12;
var thickness = .002;
var foldCount = 0;
while (thickness < distanceToSun) {
thickness *= 2;
foldCount++;
}
document.write("<p>Number of folds = " +
foldCount+"</p>");
</script>
</body>
</html>
(1) Autoriser l’execution
des applets java:
Chrome/paramètres/java
script/ autoriser tous les
sites à exécuter
JavaScript
Scripts vs Applets(4)
Insertion du code JavaScript
dans une page HTML(1)
• La mise en page en utilisant HTML a la
tendance d’être assez statique.
• on peut ajouter du comportement
dynamique à une page en écrivant un code
JavaScript.
• Il ya plusieurs façons afin de pouvoir inclure
du JavaScript dans une page Web,
• La majorité utilisent toutes la balise <script>
(sauf une).
Insertion du code JavaScript
dans une page HTML(2)
Insertion du code JavaScript
dans une page HTML(3)
• Méthode1:
• Ecrire le code JavaScript dans la page en tant
qu’une partie du contenu d'un élément
<script>.
<script type="text/javascript">
alert('I am a line of JavaScript');
</script>
Insertion du code JavaScript
dans une page HTML(4)
Insertion du code JavaScript
dans une page HTML(5)
Insertion du code JavaScript
dans une page HTML(6)
Insertion du code JavaScript
dans une page HTML(7)
• Méthode2:
• Enregistrer le JavaScript dans un fichier séparé et
le référencé en utilisant l’attribut src de l’élément
<script>.
• <script type="text/javascript"
src="alertme.js"></script>
• <script type="text/javascript"
src="http://ajax.contoso.com/ajax/jQuery/jquery-
1.7.2.js">
</script>
La balise <script>
• La balise <script> possède trois attributs:
– L’attribut type, qui identifie le langage script à
utiliser; (la valeur par défaut est: text/javascript).
– L’attribut src qui identifie le fichier script à
télécharger(on doit pas l’utiliser en cas ou le scripy
fait partie du contenu de la balise <script>).
– L’attribut charset, qui identifie le type d’ encodage
(for example, utf-8, Shift-JIS) du fichier script
externe; (dans le cas ou src n’est pas utilisé l’attribut
charset ne doit pas être utilisé).
La balise <noscript>
• Parfois pour des raisons de
sécurité la fonctionnalité
JavaScript est désactivée
• Dans ce cas n’importe quelle
partie de la page web utilisant
JavaScript ne pourra pas
s’executer correctement
• On peut alerter alors l’utilisateur
à propos de ce cas en utilisant la
balise <noscript>.
• Cet élément permet au browser
d’afficher un message demandant
l’activation du JavaScript afin que
la page soit exécutées
correctement.
<body>
<noscript>This page
uses JavaScript. Please
enable it in your
browser</noscript>
…
Rest of page
…
<script
src="MyScripts.js"></sc
ript>
</body>
Les Sorties en JavaScript
• JavaScript ne dispose pas de fonctions d'impression ou
d'affichage qui sont intégrées (on utilise les API DOM, Console
etc.):
• JavaScript peut réaliser la fonction d'affichage" de différentes
façons:
– L'écriture dans une boîte d'alerte, en utilisant window.alert ().
– L'écriture dans le fichier HTML en utilisant document.write ().
– L'écriture dans un élément HTML, en utilisant innerHTML.
– L'écriture dans la console du navigateur, en utilisant console.log ().
Affichage1-Utilisation de window.alert ()
• On peut utiliser une
boîte d'alerte pour
afficher des données:
<!DOCTYPE html>
<html>
<body>
<h1>My First Web Page</h1>
<p>My first paragraph.</p>
<script>
document.alert(5 + 6);
</script>
</body>
</html>
Affichage2-Utilisation de Document.write()
• Exemple 1:
À des fins de test, il est
commode d'utiliser:
document.write ():
<!DOCTYPE html>
<html>
<body>
<h1>My First Web Page</h1>
<p>My first paragraph.</p>
<script>
document.write(5 + 6);
</script>
</body>
</html>
Affichage3-Utilisation de Document.write ()
• Exemple2:
L’utilisation de
Document.write ()
après un chargement
tout-entier d’un
document HTML,
va supprimer tous les
éléments
HTML existants de la
page:
<!DOCTYPE html>
<html>
<body>
<h1>My First Web Page</h1>
<p>My first paragraph.</p>
<button onclick="document.write(5 +
6)">Try it</button>
</body>
</html>
Affichage4-Utilisation console.log ()
• Dans le navigateur, on
peut utiliser la méthode
console.log () pour
afficher des données.
• On doit activer le console
du navigateur :
– On appui sur la touche F12,
– et sélectionne "Console"
dans le menu.
!DOCTYPE html>
<html>
<body>
<h1>My First Web Page</h1>
<p>My first paragraph.</p>
<script>
console.log(5 + 6);
</script>
</body>
</html>
Les kits de développement et leur
console
• Aujourd'hui, chaque navigateur possède un kit de
développement.
• Ces kits nous permettent de déboguer
efficacement nos codes, que ce soit pour:
– détecter des erreurs syntaxiques,
– afficher un grand nombre de valeurs dans la console,
– consulter le code HTML généré par du code,
– analyser des requêtes HTTP (entre autres) effectuées
par le navigateur,
– mesurer les performances du code,
– et bien d'autres choses encore !
Les kits de développement et leur
console
• Bien, à quoi ressemble un kit de développement (Chrome 34)?
• Pour ouvrir le kit de développement, appuyez sur la touche F12
signalisation des erreurs syntaxiques
• Créons un code syntaxiquement faux :
• // Ici nous créons une fonction JavaScript, avec
quelques erreurs de syntaxe.
functin test() {
alert('Hello !');
• Et incluons-le dans notre code HTML :
• <script>
functin test() {
alert('Hello !');
test();
• </script>
signalisation des erreurs syntaxiques
• affichez cette page dans votre navigateur et allez consulter la console,
vous devriez voir l'erreur suivante affichée :
• le terme SyntaxError qui mentionne une erreur syntaxique,
• le texte qui suit n'est qu'une indication sur ce qui a bien pu provoquer
cette erreur,
• À droite de ce texte, vous pouvez voir le nom du fichier concerné ainsi que
la ligne de code,
• vous pouvez cliquer dessus et votre navigateur vous amènera directement
sur la ligne qui pose problème.
signalisation des erreurs syntaxiques
• Tout simplement parce que l'interpréteur JavaScript
s'arrête sur la première erreur rencontrée.
• Essayez de rectifier l'erreur actuellement indiquée, vous
verrez que le navigateur vous affichera alors l'erreur
suivante sur Chrome : « Uncaught SyntaxError: Unexpected
end of input ».
Try et catch de JavaScript: pour la
gestion des erreurs
• L‘instruction Try permet
de définir un bloc de
code qui doit être testé
en ce qui concerne lors
de son exécution.
• L’instruction catch
permet de définir un
bloc de code à exécuter,
en cas où une erreur se
produit dans le bloc try.
<!DOCTYPE html>
<html>
<body>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.write(err.message);
}
</script>
</body>
</html>

Contenu connexe

Tendances (17)

Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Cours JSP
Cours JSPCours JSP
Cours JSP
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
 
Examen
Examen Examen
Examen
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
 
Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux Servlets
 
Rapport tp2 j2ee
Rapport tp2 j2eeRapport tp2 j2ee
Rapport tp2 j2ee
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentation
 
Chapitre 4 Java script
Chapitre 4 Java scriptChapitre 4 Java script
Chapitre 4 Java script
 
Cours services web_fabrice_mourlin
Cours services web_fabrice_mourlinCours services web_fabrice_mourlin
Cours services web_fabrice_mourlin
 
GWT Principes & Techniques
GWT Principes & TechniquesGWT Principes & Techniques
GWT Principes & Techniques
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 

Similaire à Java script Introduction

Yass-RSI-Bootstrap.pptx
Yass-RSI-Bootstrap.pptxYass-RSI-Bootstrap.pptx
Yass-RSI-Bootstrap.pptxyassinesouli2
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
resume-theorique-m105-0903-2-622f06c594dce.pdf
resume-theorique-m105-0903-2-622f06c594dce.pdfresume-theorique-m105-0903-2-622f06c594dce.pdf
resume-theorique-m105-0903-2-622f06c594dce.pdfFootballLovers9
 
Ajax intro 2pp
Ajax intro 2ppAjax intro 2pp
Ajax intro 2ppRYMAA
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Kenny Dits
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwthkairi
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
Création des sites web pour débutant
Création des sites web pour débutantCréation des sites web pour débutant
Création des sites web pour débutantKorteby Farouk
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascriptjp_mouton
 
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonGoogle Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonStéphane Liétard
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09Claude Coulombe
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Tugdual Grall
 
Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Microsoft Technet France
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !davrous
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EESabri Bouchlema
 
Informatique Mobile et synchronisation
Informatique Mobile et synchronisationInformatique Mobile et synchronisation
Informatique Mobile et synchronisationSébastien Letélié
 
Web 2.0 & Génie Logiciel - GTI780 & MTI780 - ETS - A09
Web 2.0 & Génie Logiciel  - GTI780 & MTI780 - ETS - A09Web 2.0 & Génie Logiciel  - GTI780 & MTI780 - ETS - A09
Web 2.0 & Génie Logiciel - GTI780 & MTI780 - ETS - A09Claude Coulombe
 

Similaire à Java script Introduction (20)

Yass-RSI-Bootstrap.pptx
Yass-RSI-Bootstrap.pptxYass-RSI-Bootstrap.pptx
Yass-RSI-Bootstrap.pptx
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
 
resume-theorique-m105-0903-2-622f06c594dce.pdf
resume-theorique-m105-0903-2-622f06c594dce.pdfresume-theorique-m105-0903-2-622f06c594dce.pdf
resume-theorique-m105-0903-2-622f06c594dce.pdf
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
 
Ajax intro 2pp
Ajax intro 2ppAjax intro 2pp
Ajax intro 2pp
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwt
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Création des sites web pour débutant
Création des sites web pour débutantCréation des sites web pour débutant
Création des sites web pour débutant
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascript
 
Google Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative CommonGoogle Web Toolkit 1.5 Presentation Web Creative Common
Google Web Toolkit 1.5 Presentation Web Creative Common
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09
 
Serveurs
ServeursServeurs
Serveurs
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)
 
Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
Informatique Mobile et synchronisation
Informatique Mobile et synchronisationInformatique Mobile et synchronisation
Informatique Mobile et synchronisation
 
Web 2.0 & Génie Logiciel - GTI780 & MTI780 - ETS - A09
Web 2.0 & Génie Logiciel  - GTI780 & MTI780 - ETS - A09Web 2.0 & Génie Logiciel  - GTI780 & MTI780 - ETS - A09
Web 2.0 & Génie Logiciel - GTI780 & MTI780 - ETS - A09
 

Java script Introduction

  • 1. UE: DEVELOPPEMENT WEB ET MULTIMEDIA 2 (1)Programmation Web2 (2)Atelier Développement Web et Multimédia II Technologies de l’Informatique (TI) TC-Semestre 2 Mohamed Mhamdi Iset de Sousse(Tunisie)
  • 5. page web statique - page web dynamique • Une page web statique est une page web dont le contenu ne varie pas en fonction des caractéristiques de la demande, c'est-à-dire qu'à un moment donné tous les internautes qui demandent la page reçoivent le même contenu. • À l'inverse, une page web dynamique est générée à la demande et son contenu varie en fonction des caractéristiques de la demande (heure, adresse IP de l'ordinateur du demandeur, formulaire rempli par le demandeur, etc.) qui ne sont connues qu'au moment de sa consultation.
  • 6. Mode de communication Client- serveur (Ce mode permet d’expliquer le dynS vs dynC ) • La signification d’une page dynamique ne peut s’expliquer que dans le contexte d’une communication client-serveur • environnement client-serveur= un mode de communication à travers un réseau entre plusieurs programmes ou logiciels. – l'un, qualifié de client, envoie des requêtes. – l'autre ou les autres, qualifiés de serveurs, attendent les requêtes des clients et y répondent(réponse!!!!). – Plusieurs types de serveurs: • un serveur de données à communiquer des données stockées dans une base de données • un serveur de fichiers permet de stocker et consulter des fichiers sur le réseau • un serveur de messagerie électronique envoie des mails à des clients de messagerie ; • un serveur web publie des pages web demandées par des navigateurs web ;
  • 7. réponse à la requête et type du dynamisme • Une page dynamique contient forcement une réponse à une requête émanée du client: – En cas où la réponse est générée par le serveur on parle alors d’une page dynamique coté serveur – En cas où la réponse est générée par le client on parle du dynamisme coté client
  • 8. Serveur Web Structure • Composition d’un serveur Web: – Un daemon HTTP + virtual host(protocole HTTP): écoute+analyse+extraction+envoi réponse – Autres composants Système (moteur de rendu+ moteur de script) : vérification de l’existence d’un script+ exécution du script+génération de la page web dynamique; – Pages Web Statiques (HTML+CSS) – Pages Web Dynamiques(HTML+CSS+Scripts+autres ..)
  • 9. Serveur Web La structure Interne d’un serveur Web(1)
  • 10. Serveur Web Moteur de rendu(2) Avec un rendu côté client: • votre demande initiale (Get) charge la mise en page (HTML), le code CSS et code JavaScript de la page HTML. • Mais tout ou partie du contenu ne sera pas inclus. • Au lieu de cela, le JavaScript fait une autre demande, obtient une réponse (probablement en XML ou JSON), et génère le code HTML approprié. Avec un rendu côté serveur, la demande initiale charge: -La mise en page, - le code CSS, -le contenu de la pages. Rendering coté client ou serveur ? La décision architecturale la plus importante À prendre pour votre projet! Tendance:Hybride
  • 11. Rendu du serveur suite à la demande d’une page web(1) • Les différents cas: – ScriptServ+html: (rendu=html) – ScriptServ+ScriptCli+Html: (rendu=ScriptCli+html) – ScriptServ+Applet+Html: (rendu=Applet+html) – Applet + Html: (rendu=Applet+html) – ScriptCli+html: (rendu=ScriptCli+html) – ScriptCli+applet+HTML: (rendu=ScriptCli+applet+html)
  • 12. Rendu du serveur suite à la demande d’une page web(2) Certains langages permettent de développer à la fois les aspects client et serveur. C'est le cas d'Ocsigen, de Hop ou bien encore du Server-Side JavaScript.
  • 13. Rendu du serveur suite à la demande d’une page web(3)
  • 14. Dynamisme coté serveur vs coté client • À l'inverse, une page web dynamique est générée à la demande et son contenu varie en fonction des caractéristiques de la demande • on utilise des langages qui offrent la possibilité de réagir à certaines actions de l'utilisateur sans avoir à questionner le serveur
  • 15. Technologies pour pages Web dynamiques(1) (1)Comme il Il y a des langages pour la programmation des pages web statiques qui sont Les langages de balisage (HTML, XHTML,XML) (2)Il ya d’autres qui sont fait pour la programmation des pages dynamiques (3)En réalité il ne s’agit pas uniquement des langages mais de technologies • Ce type de Technologies est utilisé pour une plus grande interaction entre un client et un serveur • Nous allons tracer un bref aperçu de différentes technologies possibles dans la programmation dynamique côté client ou côté serveur.
  • 16. Langages pour pages Web dynamiques(2) • Insertion d'objets – Images ( gifs animés.) – Multimédia (son ou vidéo) – Animation Flash (animations dans un format vectoriel propriétaire +ActionScript(1)) – Applet Java (appliquette) – ActiveX (applications développée par Microsoft.)
  • 18. Programmation web côté client • Côté client (en général le navigateur web): on utilise des langages qui offrent la possibilité de réagir à certaines actions de l'utilisateur: – En exploitant la puissance de traitement locale du client (eclatement au niveau du traitement) – sans avoir à questionner le serveur.(parfois)
  • 19. Les technologies de programmation Web dynamique côté client • Les technologies natives aux navigateurs – HTML5 : le langage client du Web – CSS 3 pour la présentation – JavaScript et Framework JavaScript pour l'interactivité • Les technologies à base de plugins – Applet Java – Contrôle ActiveX – Flash
  • 20. Scripts vs Applets(1) Code source Java Byte code (.class) 0: iconst_2 1: istore_1 2: iload_1 3: sipush 1000 6: if_icmpge 44 9: iconst_2 10: istore_2 11: iload_2 12: iload_1 13: if_icmpge 31 16: iload_1 17: iload_2 18: irem 19: ifne 25 22: goto 38 25: iinc 2, 1 28: goto 11 31: getstatic #84; // Field java/lang/System.out:Ljava/io/PrintStream; 34: iload_1 35: invokevirtual #85; // Method java/io/PrintStream.println:(I)V 38: iinc 1, 1 41: goto 2 44: return outer: for (int i = 2; i < 1000; i++) { for (int j = 2; j < i; j++) { if (i % j == 0) continue outer; } System.out.println (i); }
  • 21. Scripts vs Applets(2) (1)Intaller java (2) Activer javaplugin dans le browser: appel du panneau de configuration java demarrer/programme/java/c onfiguration java/ securité/activer le contenu java dans le navigateur (3) Autoriser l’execution des applets java: Chrome/paramètres/plug- ins/ autoriser tout le contenu du plug-in
  • 22. Scripts vs Applets(3) <html> <!–- COMP519 js03.html 11.10.14 --> <head> <title>Folding Puzzle</title> </head> <body> <script type="text/javascript"> var distanceToSun = 93.3e6*5280*12; var thickness = .002; var foldCount = 0; while (thickness < distanceToSun) { thickness *= 2; foldCount++; } document.write("<p>Number of folds = " + foldCount+"</p>"); </script> </body> </html> (1) Autoriser l’execution des applets java: Chrome/paramètres/java script/ autoriser tous les sites à exécuter JavaScript
  • 24. Insertion du code JavaScript dans une page HTML(1) • La mise en page en utilisant HTML a la tendance d’être assez statique. • on peut ajouter du comportement dynamique à une page en écrivant un code JavaScript. • Il ya plusieurs façons afin de pouvoir inclure du JavaScript dans une page Web, • La majorité utilisent toutes la balise <script> (sauf une).
  • 25. Insertion du code JavaScript dans une page HTML(2)
  • 26. Insertion du code JavaScript dans une page HTML(3) • Méthode1: • Ecrire le code JavaScript dans la page en tant qu’une partie du contenu d'un élément <script>. <script type="text/javascript"> alert('I am a line of JavaScript'); </script>
  • 27. Insertion du code JavaScript dans une page HTML(4)
  • 28. Insertion du code JavaScript dans une page HTML(5)
  • 29. Insertion du code JavaScript dans une page HTML(6)
  • 30. Insertion du code JavaScript dans une page HTML(7) • Méthode2: • Enregistrer le JavaScript dans un fichier séparé et le référencé en utilisant l’attribut src de l’élément <script>. • <script type="text/javascript" src="alertme.js"></script> • <script type="text/javascript" src="http://ajax.contoso.com/ajax/jQuery/jquery- 1.7.2.js"> </script>
  • 31. La balise <script> • La balise <script> possède trois attributs: – L’attribut type, qui identifie le langage script à utiliser; (la valeur par défaut est: text/javascript). – L’attribut src qui identifie le fichier script à télécharger(on doit pas l’utiliser en cas ou le scripy fait partie du contenu de la balise <script>). – L’attribut charset, qui identifie le type d’ encodage (for example, utf-8, Shift-JIS) du fichier script externe; (dans le cas ou src n’est pas utilisé l’attribut charset ne doit pas être utilisé).
  • 32. La balise <noscript> • Parfois pour des raisons de sécurité la fonctionnalité JavaScript est désactivée • Dans ce cas n’importe quelle partie de la page web utilisant JavaScript ne pourra pas s’executer correctement • On peut alerter alors l’utilisateur à propos de ce cas en utilisant la balise <noscript>. • Cet élément permet au browser d’afficher un message demandant l’activation du JavaScript afin que la page soit exécutées correctement. <body> <noscript>This page uses JavaScript. Please enable it in your browser</noscript> … Rest of page … <script src="MyScripts.js"></sc ript> </body>
  • 33. Les Sorties en JavaScript • JavaScript ne dispose pas de fonctions d'impression ou d'affichage qui sont intégrées (on utilise les API DOM, Console etc.): • JavaScript peut réaliser la fonction d'affichage" de différentes façons: – L'écriture dans une boîte d'alerte, en utilisant window.alert (). – L'écriture dans le fichier HTML en utilisant document.write (). – L'écriture dans un élément HTML, en utilisant innerHTML. – L'écriture dans la console du navigateur, en utilisant console.log ().
  • 34. Affichage1-Utilisation de window.alert () • On peut utiliser une boîte d'alerte pour afficher des données: <!DOCTYPE html> <html> <body> <h1>My First Web Page</h1> <p>My first paragraph.</p> <script> document.alert(5 + 6); </script> </body> </html>
  • 35. Affichage2-Utilisation de Document.write() • Exemple 1: À des fins de test, il est commode d'utiliser: document.write (): <!DOCTYPE html> <html> <body> <h1>My First Web Page</h1> <p>My first paragraph.</p> <script> document.write(5 + 6); </script> </body> </html>
  • 36. Affichage3-Utilisation de Document.write () • Exemple2: L’utilisation de Document.write () après un chargement tout-entier d’un document HTML, va supprimer tous les éléments HTML existants de la page: <!DOCTYPE html> <html> <body> <h1>My First Web Page</h1> <p>My first paragraph.</p> <button onclick="document.write(5 + 6)">Try it</button> </body> </html>
  • 37. Affichage4-Utilisation console.log () • Dans le navigateur, on peut utiliser la méthode console.log () pour afficher des données. • On doit activer le console du navigateur : – On appui sur la touche F12, – et sélectionne "Console" dans le menu. !DOCTYPE html> <html> <body> <h1>My First Web Page</h1> <p>My first paragraph.</p> <script> console.log(5 + 6); </script> </body> </html>
  • 38. Les kits de développement et leur console • Aujourd'hui, chaque navigateur possède un kit de développement. • Ces kits nous permettent de déboguer efficacement nos codes, que ce soit pour: – détecter des erreurs syntaxiques, – afficher un grand nombre de valeurs dans la console, – consulter le code HTML généré par du code, – analyser des requêtes HTTP (entre autres) effectuées par le navigateur, – mesurer les performances du code, – et bien d'autres choses encore !
  • 39. Les kits de développement et leur console • Bien, à quoi ressemble un kit de développement (Chrome 34)? • Pour ouvrir le kit de développement, appuyez sur la touche F12
  • 40. signalisation des erreurs syntaxiques • Créons un code syntaxiquement faux : • // Ici nous créons une fonction JavaScript, avec quelques erreurs de syntaxe. functin test() { alert('Hello !'); • Et incluons-le dans notre code HTML : • <script> functin test() { alert('Hello !'); test(); • </script>
  • 41. signalisation des erreurs syntaxiques • affichez cette page dans votre navigateur et allez consulter la console, vous devriez voir l'erreur suivante affichée : • le terme SyntaxError qui mentionne une erreur syntaxique, • le texte qui suit n'est qu'une indication sur ce qui a bien pu provoquer cette erreur, • À droite de ce texte, vous pouvez voir le nom du fichier concerné ainsi que la ligne de code, • vous pouvez cliquer dessus et votre navigateur vous amènera directement sur la ligne qui pose problème.
  • 42. signalisation des erreurs syntaxiques • Tout simplement parce que l'interpréteur JavaScript s'arrête sur la première erreur rencontrée. • Essayez de rectifier l'erreur actuellement indiquée, vous verrez que le navigateur vous affichera alors l'erreur suivante sur Chrome : « Uncaught SyntaxError: Unexpected end of input ».
  • 43. Try et catch de JavaScript: pour la gestion des erreurs • L‘instruction Try permet de définir un bloc de code qui doit être testé en ce qui concerne lors de son exécution. • L’instruction catch permet de définir un bloc de code à exécuter, en cas où une erreur se produit dans le bloc try. <!DOCTYPE html> <html> <body> <script> try { adddlert("Welcome guest!"); } catch(err) { document.write(err.message); } </script> </body> </html>

Notes de l'éditeur

  1. (1) Il y a aussi des langages pour pages web statiques qui sont Les langages de balisage (HTML, XHTML,XML)
  2. La signification d’une page dynamique ne peut s’expliquer que dans le contexte d’une communication client-serveur Une page dynamique contient forcement une réponse à une requête émanée du client En cas où la réponse est générée par le serveur on parle alors d’une page dynamique coté serveur En cas où la réponse est générée par le client on parle du dynamisme coté client Mode maître-esclave;client-serveur; distribué (système n-tiers, système cloud) Ces modes agissent sur l’eclatement du système d’inf de point de vue:données,traitement, contrôle (securité). Un mode de communication entre quoi et quoi? Rôle du client? Exemple de requêtes client .. Rôle du serveur? Exemple de chaque type de serveur?  
  3. Un daemon: à l’écoute mode scrutation ou mode interruption
  4. (1) Le serveur http est à l’ecoute des requêtes Http Il les detecte Il les analyse Il recupère le fichier html correspondant Il fait passer ce fichier au moteur de rendu Le serveur http récupère le fichier ‘html’ de défini dans 2] le Virtual Host. En gros l'avantage des virtual hosts, c'est que tu peux installer plusieurs sites web sur une même machine, et donc y configurer plusieurs noms de domaine avec la même adresse IP. 
  5. http://openmymind.net/2012/5/30/Client-Side-vs-Server-Side-Rendering/ renderin
  6. Ou il faut combiner deux technologies de programmation: l’une coté client et l’autre coté serveur
  7. Par exemple, le JavaScript d'une page Web peut réagir aux saisies de l'utilisateur dans un formulaire (et vérifier le format des données).
  8. Comme il Il y a des langages pour la programmation des pages web statiques qui sont Les langages de balisage (HTML, XHTML,XML) Il ya d’autres qui sont fait pour la programmation des pages dynamiques En réalité il ne s’agit pas uniquement des langages mais de technologies Les bases des technologies web sont le: - protocole réseau HTTP (abr. de Hypertext Transfer Protocol), normalisé par l'IETF  et le format de document HTML (abr. de Hypertext Markup Language), normalisé par le W3C. Les technologies web permettent aujourd'hui de créer des applications informatiques (des applications reseaux). Apparition des navigateurs:  CERN httpd, Mosaic.le navigateur Netscape Navigator, IE,  Mozilla Firefox. Suite aux demandes des développeurs de sites web de la création d'une norme pour les sites dynamiques, la a mise en place de Common Gateway Interface (CGI) fut discuté à la 5e réunion internationale du WWWW, du 6 au 10 mai 1996 à Paris et organisée par le w3c7. Au lieu d'envoyer le contenu d'un fichier (fichier HTML, image), le serveur HTTP exécute un programme, puis retourne le contenu généré. CGI est le standard industriel qui indique comment transmettre la requête du serveur HTTP au programme, et comment récupérer la réponse générée. Un exemple classique de paramètre est la chaîne de caractères contenant les termes recherchés auprès d'un moteur de recherche. Comme cette technologie requiert le lancement d'un nouveau processus à chaque requête, elle cause une charge de traitement évitable. Ceci a eu pour effet la création d'autres technologies plus efficaces. FastCGI est une évolution basée sur CGI qui permet de ne lancer le programme CGI qu'une seule fois, et non pas à chaque requête concernée ; cette technique nécessite une petite bibliothèque logicielle qui a été développée pour les principaux langages utilisés (C, Perl...). Une autre solution est d'intégrer le programme directement dans le serveur HTTP sous forme de module, ceci nécessitant une adaptation bien plus lourde et qui est propre au serveur HTTP. C'est le cas avec Apache qui propose des dizaines de modules pour interpréter des langages, se connecter à des bases de données, etc. http://staffweb.cms.gre.ac.uk/~mk05/web/XHTML/forms.html http://docstore.mik.ua/orelly/java-ent/servlet/ch01_01.htm [modifier | modifier le code] Voir la catégorie : Langage pour pages Web dynamiques. .
  9. technique pour rendre une page web plus dynamique .. permettre de 'dynamiser' un site  ils exigeront l'installation d'un "plugin" pour être lus. ActionScript est un langage de programmation utilisé au sein d'applications clientes (comme Adobe Flash et Adobe Flex)/ ActionScript est un langage de script, orienté objet et prototype, basé sur ECMAScript / Ce langage permet d'ajouter de l'interactivité aux animations Flash, en répondant aux actions de l'utilisateur, et en pilotant les movie clip (conteneurs graphiques permettant de hiérarchiser les animations), et les différents objets multimédias (images, son, vidéo…). Il permet également la communication de l'application avec le serveur, notamment par le chargement de fichiers ou la communication avec un langage serveur comme le PHP. L'utilisation de Flash dans une page web nécessite l'installation du plug-in "Flash player" qui n'est pas disponible pour tous les systèmes. Flash (de Adobe Systems - Macromedia) est un programme qui permet de créer des animations dans un format vectoriel propriétaire relativement léger. Le programme génère un fichier avec l'extension .fla qui est le fichier de travail et qui sera 'compilé' en un fichier avec l'extension .swf. Swift est un autre programme générant des fichiers swf hors de la sphère Macromedia. Dans une page web, une animation Flash (fichier avec extension .swf) peut être intégrée comme partie de la page (une publicité, un menu, ...) ou l'ensemble de la page peut être en flash mais il y aura toujours un squelette HTML. Flash permet de créer des animations de qualité, permet une certaine interaction avec l'utilisateur grâce au langage de programmation ActionScript (dérivé de ECMAScriptcomme JavaScript). Les dernières versions de Flash permettent également l'interfaçage avec une base de données.
  10. Par exemple, le JavaScript d'une page Web peut réagir aux saisies de l'utilisateur dans un formulaire (et vérifier le format des données).
  11. Exercice
  12. Code source:.c -> Code executable:.exe
  13. (1)Intaller java (2) Activer javaplugin dans le browser: appel du panneau de configuration java demarrer/programme/java/configuration java/ securité/activer le contenu java dans le navigateur (3) Autoriser l’execution des applets java Chrome/paramètres/plug-ins/ autoriser tout le contenu du plug-in
  14. Detail du flux 5 du schéma structure du serveur Les cas: ScriptServ+html: (retour=html) ScriptServ+ScriptCli+Html: (retour=ScriptCli+html) ScriptServ+Applet+Html: (retour=Applet+html) Applet + Html: (retour=Applet+html) ScriptCli+html: (retour=ScriptCli+html) ScriptCli+applet+HTML: (retour=ScriptCli+applet+html)