Rafraîchir partie de code automatiquement

Résolu/Fermé
Niuognip Messages postés 2 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 5 juin 2013 - 5 juin 2013 à 10:21
Niuognip Messages postés 2 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 5 juin 2013 - 5 juin 2013 à 15:32
Bonjour,

Je suis entrain de programmer sur mon site web un petit module pour illustrer les économies que mon entreprise fait réaliser à ses clients. J'ai réussi à programmer un truc plus ou moins fonctionnel mais je n'arrive pas à afficher l'évolution en direct (je suis obligé de rafraîchir la page pour mettre à jour les chiffre alors que je souhaite que ces chiffres défilent automatiquement).

Pour que vous puissiez mieux comprendre voici l'exemple dont je me suis inspiré pour mon js : https://ecosystem-energy.com/fr/ (dans l'encadré jaune).

<head>

<script type="text/JavaScript">
<!--
function AutoRefresh(5) {
	setTimeout("location.reload(true);",5);
}
//   -->
</script>

<script type="text/javascript">
function compteurBilingue()
	{
		var i = -1
		if (i !== -1)
		{
			compteurEconomies('fr');
			compteurBilingue();
		}
		else 
		{
			compteurEconomies('en');
		}
	}
</script>

<script type="text/javascript">

function formatNumber(num,dec,thou,pnt,curr1,curr2,n1,n2) {var x = Math.round(num * Math.pow(10,dec));if (x >= 0) n1=n2='';var y = (''+Math.abs(x)).split('');var z = y.length - dec; if (z<0) z--; for(var i = z; i < 0; i++) y.unshift('0'); if (z<0) z = 1; y.splice(z, 0, pnt); if(y[0] == pnt) y.unshift('0'); while (z > 3) {z-=3; y.splice(z,0,thou);}var r = curr1+n1+y.join('')+n2+curr2;return r;}


function compteurEconomies(lang)
{
	if (lang=='fr'){var virgule=','; var milliers=' ';}
	else {var virgule='.'; var milliers=',';};
	var debut=new Date(2010,01,01);
	var today=new Date();
	var h=today.getTime();
	var j=debut.getTime();
	var t=h-j;
	var annees=t/31556926000;
	var dollars=(annees * 12234874) + 125000000;
	var tges=(annees * 22568) + 230572;
	var dollars=formatNumber(dollars,2,milliers,virgule,'','','-','');
	var tges=formatNumber(tges,3,milliers,virgule,'','','-','');
	document.getElementById('dollars').innerHTML=dollars
	document.getElementById('tges').innerHTML=tges
	if (lang=='fr'){
	t=setTimeout('compteurEconomies("fr")',1000);
	}
	else {
	t=setTimeout('compteurEconomies("en")',1000);
	};
} 
</script>

</head>

<body onload="compteurBilingue(); JavaScript: AutoRefresh(5);">
<table>
<tr>
<td id="dollars" width="auto">165 850 099</td>
</tr>
<tr>
<td></td>
</tr>
</table>
</body>


J'ai fais plusieurs tentative pour forcer la mise à jour de ma fonction sur la page web notamment avec la fonction AutoRefresh mais ça ne fonctionne pas...

Si vous voyez d'autre points d'amélioration n'hésitez pas à m'en faire part, je suis complètement novice et ne m'offusquerai pas de vos remarques.

Merci encore pour votre aide.


A voir également:

1 réponse

Niuognip Messages postés 2 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 5 juin 2013 2
5 juin 2013 à 15:32
Bon finalement j'ai réussi à faire ce que je voulais. Je met le code que j'ai fait pour aider ceux qui chercheraient éventuellement :

<head>
<script type="text/javascript">
function compteurBilingue()
	{
		var i = -1
		if (i !== -1)
		{
			compteurEconomies();
			compteurBilingue();
		}
		else 
		{
			compteurEconomies('en');
		}
	}
</script>
<script type="text/javascript">

function formatNumber(num,dec,thou,pnt,curr1,curr2,n1,n2) {var x = Math.round(num * Math.pow(10,dec));if (x >= 0) n1=n2='';var y = (''+Math.abs(x)).split('');var z = y.length - dec; if (z<0) z--; for(var i = z; i < 0; i++) y.unshift('0'); if (z<0) z = 1; y.splice(z, 0, pnt); if(y[0] == pnt) y.unshift('0'); while (z > 3) {z-=3; y.splice(z,0,thou);}var r = curr1+n1+y.join('')+n2+curr2;return r;}

function compteurEconomies()
{
	var virgule=','; 
	var milliers=' ';;
	var debut=new Date(1998,01,01);
	var today=new Date();
	var h=today.getTime();
	var j=debut.getTime();
	var t=h-j;
	var annees=t/31556926000;
	var budgetTraite=(annees * 16709709);
	var ecoRealise=(annees * 4705955);
	var budgetTraite=formatNumber(budgetTraite,2,milliers,virgule,'','','-','');
	var ecoRealise=formatNumber(ecoRealise,3,milliers,virgule,'','','-','');
	document.getElementById('budgetTraite').innerHTML=budgetTraite
	document.getElementById('ecoRealise').innerHTML=ecoRealise
	{
	t=setTimeout('compteurEconomies()',10);
	}
} 
</script>
</head>
<body onload="compteurBilingue(); JavaScript: AutoRefresh(5);">
<table>
<tr>
<td id="budgetTraite" width="auto">165 850 099</td>
<td style="padding-left: 10px;" width="auto"> Budgets Traites (euros)</td>
</tr>
<tr>
<td id="ecoRealise" width="auto">165 850 099</td>
<td style="padding-left: 10px;" width="auto"> Economies (euros)</td>
</tr>
</table>
</body>


Voili Voilou ^^
3