• Aucun résultat trouvé

Programmation Web Avancée avec TP – Cours et formation gratuit

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation Web Avancée avec TP – Cours et formation gratuit"

Copied!
3
0
0

Texte intégral

(1)

Programmation Web Avancée Côté Client TP n 2

Licence Informatique 2ème année Université de Nice-Sophia Antipolis

Introduction

Le but de cette séance de travaux pratiques est de nous familiariser avec JavaScript en tant que langage de programmation à un niveau élémentaire, sans, pour l’instant, nous préoccuper trop de l’interface avec HTML et du modèle orienté objet des documents.

Nous commencerons donc par développer un script qui génère de façon auto- matique du contenu pour une page Web « statique » ; dans un deuxième temps, nous ajouterons à cette page quelques éléments de dynamicité.

1 Une table de nombres premiers

Un nombre premier est un nombre naturel qui admet exactement deux di- viseurs : 1 et lui-même. Cette définition exclut 1, qui n’a qu’un seul diviseur naturel ; elle exclut aussi 0, qui est divisible par tous les nombres naturels.

Nous allons créer une page HTML contenant un script en langage JavaScript qui génère une table des premiers N nombres entiers, où la valeur de N sera déterminée par un morceau de texte de la page elle-même.

Les nombres premiers devront être affichés par colonnes alignées à droite, de sorte à obtenir un tableau carré, mais sans dépasser les 20 colonnes. Par exemple, la table des premiers 25 nombres premiers devrait être affichée :

2 13 31 53 73 3 17 37 59 79 5 19 41 61 83 7 23 43 67 89 11 29 47 71 97

1. Créez un fichier HTML primes.html en utilisant le code montré en Fi- gure 1 comme exemple.

2. Vous pouvez utiliser la propriétéinnerHTMLdu nœud HTML renvoyé par la méthodegetElementById()de l’objetdocumentpour lire la valeur de N contenue dans la balise <span>avecid = NPRIMES:

N = document.getElementById("NPRIMES").innerHTML;

3. Créez un tableau P de nombres premiers connus et initialiséz-le avec le nombre 2 uniquement :

1

(2)

<html>

<head>

<title>Nombres premiers</title>

</head>

<body>

<h1>Table des premiers <span id="NPRIMES">25</span> nombres premiers</h1>

<script type="text/javascript">

// À FAIRE : placez votre code ici

</script>

<hr>

<p>Généré automatiquement par un script.</p>

</body>

</html>

Figure1 – Prototype du fichier HTML à créer.

Figure2 – La page Web statique que vous devez obtenir.

P = new Array();

P[0] = 2;

4. Maintenant, écrivez une boucle for qui essaye tous les entiers positifs impairs à partir de 3 et les ajoute au tableauP s’ils sont premiers jusqu’à ce queP contienne exactementN éléments. Évidemment, pour vérifier la primalité d’un nombrei, il faudra essayer de le diviser parP[0],P[1], . . ..

S’il se trouve queiest divisible par un des nombres premiers déjà connus, on peut en conclure quei n’est pas premier.

5. Une fois calculé le tableauPdes premiersNnombres premiers, il faut s’oc- cuper de leur visualisation. Vous devez écrire du code JavaScript qui ajoute au document HTML (avec la méthodewrite() de l’objet document) le code HTML d’une table (en utilisant donc les balises <table>, <tr> e

<td>) avec les caractéristiques requises.

Vous devez obtenir une page Web comme celle montrée en Figure 2.

2 Une table dynamique

1. Faites une copie du fichier HTML que vous avez créé à l’exercice précédent et changez son nom enprimes-dyna.html.

2

(3)

<html>

<head>

<title>Nombres premiers</title>

</head>

<body>

<h1>Table des premiers <span id="NPRIMES">25</span> nombres premiers</h1>

<button onclick="nextPrime()">Calculer prochain premier</button>

<script type="text/javascript">

// Votre code JavaScript...

</script>

<p>Voici la table des premiers <span id="N1">xx</span> nombres premiers :</p>

<table id="PrimeTable" cellpadding="5"></table>

<script type="text/javascript" >

// Placez ici le code qui remplit la table...

</script>

<hr>

<p>Généré automatiquement par un script.</p>

</body>

</html>

Figure3 – Prototype du fichier HTML à créer.

2. Modifiez le fichier de sorte à ce qu’il ressemble au fichier montré en Fi- gure 3 : notamment, vous devez ajouter un bouton juste après la balise

<h1>et insérer le paragraphe et la balise <table>qui, avant, étaient gé- nérés automatiquement.

3. Maintenant, vous devez modifier votre code JavaScript pour que, à chaque fois que l’utilisateur appuie sur le bouton, le prochain nombre premier soit calculé et le contenu de la table soit remplacé par une nouvelle table avec un élément en plus. Construisez la nouvelle table en mettant son code HTML (avec les balises<tr> and <td>et leur contenu) dans une chaîne de caractèresstr, puis remplacez le contenu de la table avec l’instruction

document.getElementById("PrimeTable").innerHTML = str;

4. Naturellement, lorsque la page est (re)chargée, la table doit s’afficher exac- tement comme elle s’affichait dans la version statique de la page.

3

Références

Documents relatifs

On n'indique donc pas dans ce cas, le chemin complet d'accès à l'image (commençant par http://), mais le chemin relatif (par exemple images/img1.png si l'image se trouve dans

9 Définition de plusieurs styles possibles et héritage des styles en cascade (Cascading). 9 Fournir une plus grande richesse d'éléments de style graphique afin d'améliorer

Servlets, JSP, JSF 2, PrimeFaces, Java 6 or 7, Ajax, jQuery, GWT, Spring, Hibernate, REST, Android.. Developed and taught by well-known author

Logiciel serveur : programme qui a pour rôle de fournir un service (ex: serveur de messagerie, d'authentification, de gestion de bases de données, de transfert de

 &lt;title&gt; et &lt;/title&gt; : informent votre navigateur qu'il s'agit du titre de votre page; ce titre sera placé dans la barre tout au-dessus de votre navigateur; ces

La technique la plus classique consiste à utiliser la passerelle CGI (Common Gateway Interface) pour exécuter un programme de traitement sur le serveur. Le programme en

Une fonction ou bien un code JavaScript peut être inséré comme valeur de l'argument exemple. Bien évidemment, il est plus intéressant d'utiliser une procédure, lorsque le code

Vous venez de créer votre première page HTML ...Facile non ? :-) La plupart du temps une balise supplémentaire vient de greffer entre les balises &lt;head&gt;&lt;/head&gt;, c'est