CriCri wrote on 27/05/2008 12:13:
>
> Merci pour ta réponse - enfin à la question posée (et non pas d'autres!).
si tu penses que compter le nombre de statements JS exécutés - dépendent
de la freq. du CPU - et que forcer chaque visiteur à modifier sa BdR
est la solution à ton problème, c'est - je le crains - que tu ne te
poses pas les bonnes questions.
donc merci pour ceux qui avaient fait l'effort de dépasser la mauvaise
question posée pour apporter une aide utile.
CriCri wrote on 27/05/2008 12:13:
>
> Merci pour ta réponse - enfin à la question posée (et non pas d'autres!).
si tu penses que compter le nombre de statements JS exécutés - dépendent
de la freq. du CPU - et que forcer chaque visiteur à modifier sa BdR
est la solution à ton problème, c'est - je le crains - que tu ne te
poses pas les bonnes questions.
donc merci pour ceux qui avaient fait l'effort de dépasser la mauvaise
question posée pour apporter une aide utile.
CriCri wrote on 27/05/2008 12:13:
>
> Merci pour ta réponse - enfin à la question posée (et non pas d'autres!).
si tu penses que compter le nombre de statements JS exécutés - dépendent
de la freq. du CPU - et que forcer chaque visiteur à modifier sa BdR
est la solution à ton problème, c'est - je le crains - que tu ne te
poses pas les bonnes questions.
donc merci pour ceux qui avaient fait l'effort de dépasser la mauvaise
question posée pour apporter une aide utile.
Non, c'est l'action de l'utilisateur qui arrête la tempo, s'il ne
fait rien la tempo se poursuit d'ou le setInterval() pour le test de
l'action de l'utilisateur.
Non, c'est l'action de l'utilisateur qui arrête la tempo, s'il ne
fait rien la tempo se poursuit d'ou le setInterval() pour le test de
l'action de l'utilisateur.
Non, c'est l'action de l'utilisateur qui arrête la tempo, s'il ne
fait rien la tempo se poursuit d'ou le setInterval() pour le test de
l'action de l'utilisateur.
si tu penses que compter le nombre de statements JS exécutés -
dépendent de la freq. du CPU - et que forcer chaque visiteur à
modifier sa BdR est la solution à ton problème, c'est - je le crains
- que tu ne te poses pas les bonnes questions.
donc merci pour ceux qui avaient fait l'effort de dépasser la
mauvaise question posée pour apporter une aide utile.
si tu penses que compter le nombre de statements JS exécutés -
dépendent de la freq. du CPU - et que forcer chaque visiteur à
modifier sa BdR est la solution à ton problème, c'est - je le crains
- que tu ne te poses pas les bonnes questions.
donc merci pour ceux qui avaient fait l'effort de dépasser la
mauvaise question posée pour apporter une aide utile.
si tu penses que compter le nombre de statements JS exécutés -
dépendent de la freq. du CPU - et que forcer chaque visiteur à
modifier sa BdR est la solution à ton problème, c'est - je le crains
- que tu ne te poses pas les bonnes questions.
donc merci pour ceux qui avaient fait l'effort de dépasser la
mauvaise question posée pour apporter une aide utile.
La faille est que ni setTimeout() ni setInterval() bloque le
script,
ils ne bloquent pas et c'est ce que l'on attend d'eux
quelle exécution serait continuée ??
à la sortie de 'affiche' l'exécution de affiche est arrétée. à la
sortie de 'afficheEtape' l'exécution de afficheEtape est arrétée.
c'est le but de setTimeout(afficheEtape, delaiUtilisateur);
et autant n'utilise pour cela un boucle bloquante - enfin pas depuis
plus de 10 ans et la génération de la programmation évènementielle.
La faille est que ni setTimeout() ni setInterval() bloque le
script,
ils ne bloquent pas et c'est ce que l'on attend d'eux
quelle exécution serait continuée ??
à la sortie de 'affiche' l'exécution de affiche est arrétée. à la
sortie de 'afficheEtape' l'exécution de afficheEtape est arrétée.
c'est le but de setTimeout(afficheEtape, delaiUtilisateur);
et autant n'utilise pour cela un boucle bloquante - enfin pas depuis
plus de 10 ans et la génération de la programmation évènementielle.
La faille est que ni setTimeout() ni setInterval() bloque le
script,
ils ne bloquent pas et c'est ce que l'on attend d'eux
quelle exécution serait continuée ??
à la sortie de 'affiche' l'exécution de affiche est arrétée. à la
sortie de 'afficheEtape' l'exécution de afficheEtape est arrétée.
c'est le but de setTimeout(afficheEtape, delaiUtilisateur);
et autant n'utilise pour cela un boucle bloquante - enfin pas depuis
plus de 10 ans et la génération de la programmation évènementielle.
C'est précisément le problème: [...]
Il n'y a pas de séparation entre le calcul et l'affichage [...]
d'où la nécessité de geler l'exécution le temps d'visualiser
Je ne veux que l'une des 3 possibilités:
- l'utilisateur choisit le délai au début (ma préférence car aucune
intervention ultérieure est nécessaire de sa part, et il peut y avoir
plusieurs personnes regardant en même temps.)
- il clique sur "Continuer" ou appuie sur une touche quand il est prêt.
à la sortie de 'affiche' l'exécution de affiche est arrétée. à la
sortie de 'afficheEtape' l'exécution de afficheEtape est arrétée.
Les deux sont intimement imbriqués; et pour les dissocier il faudrait
repenser l'algorithme entier en créant des structures de données
(tableaux) statiques pour enregistrer chaque étape à afficher.
Actuellement l'unique fonction est récursive (les appels atteignent une
profondeur de plus de 15000) et toutes les variables sont locales (donc
stockées brièvement sur le tas). Difficile donc de marquer un point,
arrêter puis y retourner.
c'est le but de setTimeout(afficheEtape, delaiUtilisateur);
Non, le but de setTimeout() est de déclencher une action indépendamment
de l'exécution du script en cours.
Même il y a beaucoup plus de 10 ans dans n'importe quel environnement
multi-tâche il y avait un gestionnaires d'évènements et/ou une fonction
wait() non-bloquants.
En tout cas on est toujours 'événementiel' même si on est 'orienté
objet': on ne passe pas quand même son temps à interroger chaque objet à
tour de rôle pour savoir s'il a envie de quelque chose, mais sommeille
en attendant un message...
C'est précisément le problème: [...]
Il n'y a pas de séparation entre le calcul et l'affichage [...]
d'où la nécessité de geler l'exécution le temps d'visualiser
Je ne veux que l'une des 3 possibilités:
- l'utilisateur choisit le délai au début (ma préférence car aucune
intervention ultérieure est nécessaire de sa part, et il peut y avoir
plusieurs personnes regardant en même temps.)
- il clique sur "Continuer" ou appuie sur une touche quand il est prêt.
à la sortie de 'affiche' l'exécution de affiche est arrétée. à la
sortie de 'afficheEtape' l'exécution de afficheEtape est arrétée.
Les deux sont intimement imbriqués; et pour les dissocier il faudrait
repenser l'algorithme entier en créant des structures de données
(tableaux) statiques pour enregistrer chaque étape à afficher.
Actuellement l'unique fonction est récursive (les appels atteignent une
profondeur de plus de 15000) et toutes les variables sont locales (donc
stockées brièvement sur le tas). Difficile donc de marquer un point,
arrêter puis y retourner.
c'est le but de setTimeout(afficheEtape, delaiUtilisateur);
Non, le but de setTimeout() est de déclencher une action indépendamment
de l'exécution du script en cours.
Même il y a beaucoup plus de 10 ans dans n'importe quel environnement
multi-tâche il y avait un gestionnaires d'évènements et/ou une fonction
wait() non-bloquants.
En tout cas on est toujours 'événementiel' même si on est 'orienté
objet': on ne passe pas quand même son temps à interroger chaque objet à
tour de rôle pour savoir s'il a envie de quelque chose, mais sommeille
en attendant un message...
C'est précisément le problème: [...]
Il n'y a pas de séparation entre le calcul et l'affichage [...]
d'où la nécessité de geler l'exécution le temps d'visualiser
Je ne veux que l'une des 3 possibilités:
- l'utilisateur choisit le délai au début (ma préférence car aucune
intervention ultérieure est nécessaire de sa part, et il peut y avoir
plusieurs personnes regardant en même temps.)
- il clique sur "Continuer" ou appuie sur une touche quand il est prêt.
à la sortie de 'affiche' l'exécution de affiche est arrétée. à la
sortie de 'afficheEtape' l'exécution de afficheEtape est arrétée.
Les deux sont intimement imbriqués; et pour les dissocier il faudrait
repenser l'algorithme entier en créant des structures de données
(tableaux) statiques pour enregistrer chaque étape à afficher.
Actuellement l'unique fonction est récursive (les appels atteignent une
profondeur de plus de 15000) et toutes les variables sont locales (donc
stockées brièvement sur le tas). Difficile donc de marquer un point,
arrêter puis y retourner.
c'est le but de setTimeout(afficheEtape, delaiUtilisateur);
Non, le but de setTimeout() est de déclencher une action indépendamment
de l'exécution du script en cours.
Même il y a beaucoup plus de 10 ans dans n'importe quel environnement
multi-tâche il y avait un gestionnaires d'évènements et/ou une fonction
wait() non-bloquants.
En tout cas on est toujours 'événementiel' même si on est 'orienté
objet': on ne passe pas quand même son temps à interroger chaque objet à
tour de rôle pour savoir s'il a envie de quelque chose, mais sommeille
en attendant un message...
quand on veux pas comprendre ...
et donc tout le monde mettrait ici le settimeout
dans mon exemple 'afficheEtape' peut lire un input field que
l'utilisateur a le droit de modifier à tout moment.
- il clique sur "Continuer" ou appuie sur une touche quand il est
prêt.
pas clair.
et c'est le but, arrété entre 0 ms et ce que tu veux avec la GROSSE
différence que le browser remets le compteur de temps d'exécution à
zéro entre chaque appel fait par settimeout.
la récursivité n'est jamais obligeatoire - ie il existe toujours un
algo non récursif pour faire la même chose.
il suffira alors de mettre les variabes en globales pour ne pas
perdre l'état courant.
tu sors cette définition interprétée et restrictive d'où ?
et un navigateur est un tel env. multi-tache ? non !
il fait plusieurs trucs distincts (charger n images via n urls) plus
ou moins en même temps, ce ne fait pas du tout un système avec
gestion fine des threads.
relire settimeout ! on n'interroge pas personne, le script (un script
membre d'un object JS) demande lui-même d'être appellé.
quand on veux pas comprendre ...
et donc tout le monde mettrait ici le settimeout
dans mon exemple 'afficheEtape' peut lire un input field que
l'utilisateur a le droit de modifier à tout moment.
- il clique sur "Continuer" ou appuie sur une touche quand il est
prêt.
pas clair.
et c'est le but, arrété entre 0 ms et ce que tu veux avec la GROSSE
différence que le browser remets le compteur de temps d'exécution à
zéro entre chaque appel fait par settimeout.
la récursivité n'est jamais obligeatoire - ie il existe toujours un
algo non récursif pour faire la même chose.
il suffira alors de mettre les variabes en globales pour ne pas
perdre l'état courant.
tu sors cette définition interprétée et restrictive d'où ?
et un navigateur est un tel env. multi-tache ? non !
il fait plusieurs trucs distincts (charger n images via n urls) plus
ou moins en même temps, ce ne fait pas du tout un système avec
gestion fine des threads.
relire settimeout ! on n'interroge pas personne, le script (un script
membre d'un object JS) demande lui-même d'être appellé.
quand on veux pas comprendre ...
et donc tout le monde mettrait ici le settimeout
dans mon exemple 'afficheEtape' peut lire un input field que
l'utilisateur a le droit de modifier à tout moment.
- il clique sur "Continuer" ou appuie sur une touche quand il est
prêt.
pas clair.
et c'est le but, arrété entre 0 ms et ce que tu veux avec la GROSSE
différence que le browser remets le compteur de temps d'exécution à
zéro entre chaque appel fait par settimeout.
la récursivité n'est jamais obligeatoire - ie il existe toujours un
algo non récursif pour faire la même chose.
il suffira alors de mettre les variabes en globales pour ne pas
perdre l'état courant.
tu sors cette définition interprétée et restrictive d'où ?
et un navigateur est un tel env. multi-tache ? non !
il fait plusieurs trucs distincts (charger n images via n urls) plus
ou moins en même temps, ce ne fait pas du tout un système avec
gestion fine des threads.
relire settimeout ! on n'interroge pas personne, le script (un script
membre d'un object JS) demande lui-même d'être appellé.
Oui. Apparemment tu ne veux pas comprendre qu'il manque à JavaScript une
fonction importante: celle de pouvoir attendre une échéance sans bloquer
(ou tout au moins ralentir) l'exécution d'autre tâches...
Oui. Apparemment tu ne veux pas comprendre qu'il manque à JavaScript une
fonction importante: celle de pouvoir attendre une échéance sans bloquer
(ou tout au moins ralentir) l'exécution d'autre tâches...
Oui. Apparemment tu ne veux pas comprendre qu'il manque à JavaScript une
fonction importante: celle de pouvoir attendre une échéance sans bloquer
(ou tout au moins ralentir) l'exécution d'autre tâches...
Javascript ne peut pas exécuter plusieurs tâches en même temps.
Javascript ne peut pas exécuter plusieurs tâches en même temps.
Javascript ne peut pas exécuter plusieurs tâches en même temps.
et donc tout le monde mettrait ici le settimeout
Apparemment tu n'as toujours pas saisi le fait que setTimeout() n'a
_aucun_ effet que ce soit sur l'exécution du script qui l'appelle.
Encore une fois, _rien_ du tout ne s'arrête: c'est ça la GROSSE différence.
la récursivité n'est jamais obligeatoire - ie il existe toujours un
algo non récursif pour faire la même chose.
Ouais, ouais - au lieu d'appeler la même fonction récursivement tu en
écris 36000 quasiment identiques pour faire exactement la même chose.
Comme tu le dis la récursivité n'est jamais obligatoire mais c'est très
souvent le solution la plus concise et élégante.
il suffira alors de mettre les variabes en globales pour ne pas perdre
l'état courant.
- primo les variables globales sont toujours à éviter autant que
possible - par principe.
- deuzio elles prennent de la place (disque et mémoire) - mais de nos
jours on en a tant que tout le monde s'en fout à un point pas possible.
tu sors cette définition interprétée et restrictive d'où ?
Je la sors de la définition du langage (désolé pour l'english):
"The setTimeout() method evaluates an expression or calls a function
after a specified amount of time...
Une page HTML est normalement un environnement 'non-modal' qui contient
habituellement maintes éléments (objets) dont chacun peut être associé à
une action (le principe DOM) non-bloquante.
il fait plusieurs trucs distincts (charger n images via n urls) plus
ou moins en même temps, ce ne fait pas du tout un système avec
gestion fine des threads.
Aucun système mono-processeur n'exécute des tâches autrement que "plus
ou moins en même temps". Le temps est toujours partagé: donc il n'y a
aucune différence de fond.
et donc tout le monde mettrait ici le settimeout
Apparemment tu n'as toujours pas saisi le fait que setTimeout() n'a
_aucun_ effet que ce soit sur l'exécution du script qui l'appelle.
Encore une fois, _rien_ du tout ne s'arrête: c'est ça la GROSSE différence.
la récursivité n'est jamais obligeatoire - ie il existe toujours un
algo non récursif pour faire la même chose.
Ouais, ouais - au lieu d'appeler la même fonction récursivement tu en
écris 36000 quasiment identiques pour faire exactement la même chose.
Comme tu le dis la récursivité n'est jamais obligatoire mais c'est très
souvent le solution la plus concise et élégante.
il suffira alors de mettre les variabes en globales pour ne pas perdre
l'état courant.
- primo les variables globales sont toujours à éviter autant que
possible - par principe.
- deuzio elles prennent de la place (disque et mémoire) - mais de nos
jours on en a tant que tout le monde s'en fout à un point pas possible.
tu sors cette définition interprétée et restrictive d'où ?
Je la sors de la définition du langage (désolé pour l'english):
"The setTimeout() method evaluates an expression or calls a function
after a specified amount of time...
Une page HTML est normalement un environnement 'non-modal' qui contient
habituellement maintes éléments (objets) dont chacun peut être associé à
une action (le principe DOM) non-bloquante.
il fait plusieurs trucs distincts (charger n images via n urls) plus
ou moins en même temps, ce ne fait pas du tout un système avec
gestion fine des threads.
Aucun système mono-processeur n'exécute des tâches autrement que "plus
ou moins en même temps". Le temps est toujours partagé: donc il n'y a
aucune différence de fond.
et donc tout le monde mettrait ici le settimeout
Apparemment tu n'as toujours pas saisi le fait que setTimeout() n'a
_aucun_ effet que ce soit sur l'exécution du script qui l'appelle.
Encore une fois, _rien_ du tout ne s'arrête: c'est ça la GROSSE différence.
la récursivité n'est jamais obligeatoire - ie il existe toujours un
algo non récursif pour faire la même chose.
Ouais, ouais - au lieu d'appeler la même fonction récursivement tu en
écris 36000 quasiment identiques pour faire exactement la même chose.
Comme tu le dis la récursivité n'est jamais obligatoire mais c'est très
souvent le solution la plus concise et élégante.
il suffira alors de mettre les variabes en globales pour ne pas perdre
l'état courant.
- primo les variables globales sont toujours à éviter autant que
possible - par principe.
- deuzio elles prennent de la place (disque et mémoire) - mais de nos
jours on en a tant que tout le monde s'en fout à un point pas possible.
tu sors cette définition interprétée et restrictive d'où ?
Je la sors de la définition du langage (désolé pour l'english):
"The setTimeout() method evaluates an expression or calls a function
after a specified amount of time...
Une page HTML est normalement un environnement 'non-modal' qui contient
habituellement maintes éléments (objets) dont chacun peut être associé à
une action (le principe DOM) non-bloquante.
il fait plusieurs trucs distincts (charger n images via n urls) plus
ou moins en même temps, ce ne fait pas du tout un système avec
gestion fine des threads.
Aucun système mono-processeur n'exécute des tâches autrement que "plus
ou moins en même temps". Le temps est toujours partagé: donc il n'y a
aucune différence de fond.