1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| <html>
<head>
<title>Web Worker de démonstration</title>
</head>
<body>
<h1>Principe de fonctionnement d'un Web Worker</h1>
<h2>Définition de la suite de Fibonacci</h2>
<p>La suite de Fibonnaci est une suite de nombres <strong>F</strong>, tel que :<br>
- le n<sup>ième</sup> élément est égal à la somme des deux précédents<br>
- le premier élément vaut 1<br>
</p>
<p>La suite est notée : <b><strong>F<sub>n</sub></strong> = <strong>F<sub>n-1</sub></strong> + <strong>F<sub>n-2</sub></strong></b></p>
<h2> Résultat des <span id="longueur">N</span> premiers éléments de la suite de Fibonacci</h2>
<div id="suite">
<div id="suiteTitre" class="ligne"><div class="indice">Indice</div><div class="valeur">Valeur</div></div>
</div>
<script type="text/javascript">
if (window.Worker) {
var myWorker=new Worker("worker.js");
var fibonacci={
"type": "fibonacci",
"longueur": "30",
}
/* Envoyer un message avec la consigne de calcul de la suite */
myWorker.postMessage(fibonacci);
/* Réception du résultat */
myWorker.onmessage=function(evenement) {
/* Mise à jour du nombre d'éléments de la liste */
document.querySelector("span#longueur").innerText=evenement.data.longueur;
/* Construction de div#suite avec les lignes de résultats */
var suite=document.querySelector("div#suite");
var suiteTitre=document.querySelector("div#suiteTitre");
suite.innerText="";
suite.appendChild(suiteTitre);
for (var i=0; i<evenement.data.longueur; i++) {
var ligne=document.createElement("div");
ligne.className="ligne";
var indice=document.createElement("div");
indice.className="indice";
indice.innerText=(i+1);
var valeur=document.createElement("div");
valeur.className="valeur";
valeur.innerText=evenement.data.suite[i];
ligne.appendChild(indice);
ligne.appendChild(valeur);
suite.appendChild(ligne);
}
}
}
</script>
<style type="text/css">
body {
min-height: 500px;
}
strong {
font-style: italic;
}
div#suite {
display:inline-block;
padding:5px;
margin:5px;
background: #eee;
border-radius:8px;
border:1px solid #999;
}
div.ligne {
padding:2px;
}
div.indice {
display: inline-block;
width:50px;
text-align: center;
color:#999;
font-style: italic;
}
div.valeur {
display: inline-block;
width:100px;
font-weight: bold;
margin-left:10px;
}
</style>
</body>
</html> |
Partager