Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2012, 15h49   #1
Invité de passage
 
Inscription : mars 2008
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 19
Points : 4
Points : 4
Par défaut Planifier un script

Bonjour,
Je voudrais savoir si en Javascript, on peut planifier une fonction en fonction de l'heure:

En fait je voudrais lancer ce script seulement dans une certaine plage horaire:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script type="text/javascript">
var temps = <?php echo $secondes;?>;
var timer =setInterval('CompteaRebour()',1000);
function CompteaRebour(){
 
  temps-- ;
  j = parseInt(temps) ;
  h = parseInt(temps/3600) ;
  m = parseInt((temps%3600)/60) ;
  s = parseInt((temps%3600)%60) ;
  document.getElementById('minutes').innerHTML= (h<10 ? "0"+h : h) + '  h :  ' +
                                                (m<10 ? "0"+m : m) + ' mn : ' +
                                                (s<10 ? "0"+s : s) + ' s ';
if ((s == 0 && m ==0 && h ==0)) {
   clearInterval(timer);
   url = "<?php echo $redirection;?>"
   Redirection(url)
}
}
function Redirection(url) {
window.setTimeout("window.location.reload(true)",500);
}
</script>
C'est un script qui va me servir à simuler une tache cron
merci d'avance
Macfplus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 06h38   #2
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
Code :
1
2
3
4
5
6
7
8
9
10
11
var now = new Date();
var minutes = now.getMinutes() + now.getHours()*60;
var debut = 765 ; // pour 12h45=12*60+45
var fin = 820 ; // pour 13h40=13*60+40
if(minutes>=debut||minutes<=fin)
 {
 fonction(); // ta fonction
 }
else{
// ce qui se passe si tu es en dehors de ta plage horaire
}
Il ne te reste plus qu'a changer les valeurs qui te conviennent, si c'est bien cela que tu veux
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
le chat caramail de retour ? :/ http://www.tchats.net/beta.php
les projets web en cours sont sur : https://github.com/rotrevrep
rotrevrep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 09h18   #3
Invité de passage
 
Inscription : mars 2008
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 19
Points : 4
Points : 4
Hello!
Merci mais... c'est du php cha !?
Le souci c'est que php va avoir besoin que je rafraichisse la page panuellement pour faire son test.
C'est opour cela que je cherche plutot en js de manière qu'il surveille l'heure en local et réagisse seul quand la condition est remplie...

MErci quand même de ta réponse
Macfplus est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 07/02/2012, 09h21   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 079
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 079
Points : 45 210
Points : 45 210
Ha tu en en vois où du php ?
Pour moi c'est bien du js ..
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/02/2012, 13h47   #5
Invité de passage
 
Inscription : mars 2008
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 19
Points : 4
Points : 4
oups désolé
mes doigts sont plus rapides que mon cerveau ces jours ci...
Je l'ai implémenté mais j'obtiens une erreur d'objet attendu...
mon code:

Code :
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
$heures   = 1;  // les heures < 24
$minutes  = 00;   // les minutes  < 60
$secondes = 00;  // les secondes  < 60

$annee = date("Y");  // par defaut cette année
$mois  = date("m");  // par defaut ce mois
$jour  = date("d");  // par defaut aujourd'hui

$redirection = 'http://www.monsite/cron.php'; // quand le compteur arrive à 0
                                            // j'ai mis une redirection

/*******************************************************************************
    * calcul des secondes
    ***************************************************************************/

$secondes = mktime(date("H") + $heures,
                            date("i") + $minutes,
                            date("s") + $secondes,
                            $mois,
                            $jour,
                            $annee
                            ) - time();
?>
<script type="text/javascript">
//planificateur
var now = new Date();
var minutes = now.getMinutes() + now.getHours()*60;
var debut = 765 ; // pour 12h45=12*60+45
var fin = 820 ; // pour 13h40=13*60+40
if(minutes>=debut||minutes<=fin)
 {

//script decompte
var temps = <?php echo $secondes;?>;
var timer =setInterval('CompteaRebour()',1000);
function CompteaRebour(){

  temps-- ;
  j = parseInt(temps) ;
  h = parseInt(temps/3600) ;
  m = parseInt((temps%3600)/60) ;
  s = parseInt((temps%3600)%60) ;
  document.getElementById('minutes').innerHTML= (h<10 ? "0"+h : h) + '  h :  ' +
                                                (m<10 ? "0"+m : m) + ' mn : ' +
                                                (s<10 ? "0"+s : s) + ' s ';
if ((s == 0 && m ==0 && h ==0)) {
   clearInterval(timer);
   url = "<?php echo $redirection;?>"
   Redirection(url)
}
}
function Redirection(url) {
window.setTimeout("window.location.reload(true)",500);
}
//fin planificateur
 }
else{
Message = "Pas de téléchargement planifié dans cette tranche horaire !";
} 
</script>
</head>

<body onload="timer">
<SCRIPT LANGUAGE="JavaScript">
document.write(Message());
</SCRIPT>

<?php
// la condition est que le nombre de seconde soit etre superieur a 24 heures
if ($secondes <= 3600*24) {
?>
<span style="font-size: 14px;"><b>Prochaine Mise à Jour :</b>
<font color="#ff0000"><b><div id="minutes" style="font-size: 16px;"></div></b></font></span>
<?php
 }
?>
[...]
Il me note l'erreur sur la ligne en rouge, mais pourtant cette partie du script fonctionne bien normalement.

Merci
Macfplus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 13h15   #6
Rédacteur/Modérateur
 
Avatar de bigboomshakala
 
Homme
Ingénieur développement logiciels
Inscription : avril 2004
Messages : 2 051
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2004
Messages : 2 051
Points : 2 425
Points : 2 425
Bonjour,

En même temps si tu appelles une fonction avant qu'elle ne soit implémentée il y a maldonne

EDIT : j'ai rien dit
__________________
Modérateur/Rédacteur

Tutoriels/Articles :
- Espace de noms (ou namespace) en JavaScript
- Créer une table HTML éditable en JavaScript (nouveau)
- Smile.Fx : Bibliothèque d'effets visuels en JavaScript (en cours - démo disponible)

mon espace
bigboomshakala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 13h28   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 778
Points : 35 778
Citation:
Envoyé par bigboomshakala
En même temps si tu appelles une fonction avant qu'elle ne soit implémentée il y a maldonne
C'est maladroit, mais possible :
Code html :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!doctype html>
<html>
    <head>
		<meta charset="utf-8" />
		<title>Hic</title>
    </head>
    <body>
		<p id="hic"></p>
		<script>
			callBeforeDeclare('Tiens, je m\'affiche avant d\'être déclaré !');
			function callBeforeDeclare(txt){
				document.getElementById('hic').appendChild(document.createTextNode(txt));
			}
		</script>
    </body>
</html>
Le seul truc, c'est qu'il faut que la définition de la fonction et son appel soient dans la même balise <script>
Code html :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!doctype html>
<html>
    <head>
		<meta charset="utf-8" />
		<title>Hic</title>
    </head>
    <body>
		<p id="hic"></p>
		<script>
			callBeforeDeclare('Tiens, je m\'affiche avant d\'être déclaré !');
		</script>
		<script>
			function callBeforeDeclare(txt){
				document.getElementById('hic').appendChild(document.createTextNode(txt));
			}
		</script>
    </body>
</html>
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 15h50   #8
Invité de passage
 
Inscription : mars 2008
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 19
Points : 4
Points : 4
Je suis désolé, mais je ne comprends pas mon erreur ou pourquoi ça ne marche pas ?

Merci
Macfplus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 16h06   #9
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
Bonjour

t'es sûr que c'est pas a cause de ceci qu'il y a erreur :<body onload="timer">

[edit] voire même :

document.write(Message());message n'est pas une fonction

[/edit]
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 20h17   #10
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 954
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 954
Points : 4 790
Points : 4 790
Bonsoir,
le code généré serait sûrement bien utile...

il faudra bien sûr l'indenter correctement.

Je rajoutes par rapport aux dires de roro06 qu'il manque visiblement une accolade fermante avant la déclaration de la fonction CompteaRebour().
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 10h01   #11
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
re

J'ajoute que je comprends mal la redirection :
Code :
function Redirection(url) { window.setTimeout("window.location.reload(true)",500); }
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h37.


 
 
 
 
Partenaires

Hébergement Web