SetInterval (ou setTimeout) plante : quelle est mon erreur ?
Résolu/Fermé
Quedza
Messages postés
242
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
21 janvier 2022
-
Modifié le 24 juil. 2021 à 17:42
Quedza Messages postés 242 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 21 janvier 2022 - 28 juil. 2021 à 18:27
Quedza Messages postés 242 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 21 janvier 2022 - 28 juil. 2021 à 18:27
A voir également:
- SetInterval (ou setTimeout) plante : quelle est mon erreur ?
- Explorateur windows plante - Guide
- Plante - Guide
- "Pourquoi explorer.exe plante?" ✓ - Forum Windows
- Mon telephone plante que faire - Guide
- Zut, l’onglet a planté… ✓ - Forum Mozilla Firefox
4 réponses
NHenry
Messages postés
15173
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 décembre 2024
350
24 juil. 2021 à 18:38
24 juil. 2021 à 18:38
Sans tester, quelques remarques :
Donc essaye avec un texte long genre "essai de démo de texte défilant" pour voir le résultat.
- setInterval définit un appel à une fonction selon l'interval spécifié, donc à ne faire qu'une fois
- setTimeout, permet d'appeller une fonction avec un délai, donc à faire à chaque appel si tu veux périodique
- Du côté du titre, la variable derniereLettre peut être locale à la fonction (cela évite les soucis)
- Si je ne me trompe pas .substring(-1) prend la dernière lettre de la chaine et document.title.substring(+1) prend la chaine sauf la première lettre
Donc essaye avec un texte long genre "essai de démo de texte défilant" pour voir le résultat.
Quedza
Messages postés
242
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
21 janvier 2022
18
Modifié le 24 juil. 2021 à 20:42
Modifié le 24 juil. 2021 à 20:42
Salut,
Merci pour te réponse.
Comme je l'ai précisé, ma fonction marche exactement comme je le souhaite… avant de planter. Bizarre. J'ai testé sur plusieurs navigateurs.
Tu m'as fait constater que je n'avais pas besoin de créer la variable "derniereLettre" pour que la fonction marche… mais elle plante toujours.
À défaut d'explication, je cherche une alternative…
Voilà ma page :
http://l.munch.free.fr/musique_classique/
Mais évidemment, après essai infructueux, je commente la fonction afin de ne pas constamment faire planter la page.
Merci pour te réponse.
Comme je l'ai précisé, ma fonction marche exactement comme je le souhaite… avant de planter. Bizarre. J'ai testé sur plusieurs navigateurs.
Tu m'as fait constater que je n'avais pas besoin de créer la variable "derniereLettre" pour que la fonction marche… mais elle plante toujours.
À défaut d'explication, je cherche une alternative…
Voilà ma page :
http://l.munch.free.fr/musique_classique/
Mais évidemment, après essai infructueux, je commente la fonction afin de ne pas constamment faire planter la page.
NHenry
Messages postés
15173
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 décembre 2024
350
25 juil. 2021 à 00:36
25 juil. 2021 à 00:36
Quand j'ai testé ton code (posté dans la question, ), le titre est copié en boucle donc forcément une chaîne qui s’allonge en boucle, ça aide pas ...
Le souci vient de Substring, le -1 ne fonctionne pas comme tu le pense (et surtout est inadapté à ton besoin)
Après quelques essais, je suis arrivé sur un problème d'espace (le navigateur supprime les espaces au début et à la fion du titre.
Donc voici le résultat que j'ai obtenu :
Le souci vient de Substring, le -1 ne fonctionne pas comme tu le pense (et surtout est inadapté à ton besoin)
Après quelques essais, je suis arrivé sur un problème d'espace (le navigateur supprime les espaces au début et à la fion du titre.
Donc voici le résultat que j'ai obtenu :
function titre(nb) { document.title = '\u266b Mon titre super long sa mere '; setInterval(defilement, 500); } var isLastSpace=false; function defilement() { var derniereLettre=document.title.substring(0,1); if(isLastSpace) { derniereLettre=' '+derniereLettre; isLastSpace=false; } if(document.title.substring(1,2)==" ") { isLastSpace=true; } document.title = document.title.substring(1)+derniereLettre; }
Quedza
Messages postés
242
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
21 janvier 2022
18
>
NHenry
Messages postés
15173
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 décembre 2024
25 juil. 2021 à 16:05
25 juil. 2021 à 16:05
"Le souci vient de Substring, le -1 ne fonctionne pas comme tu le penses"
En effet: je l'ai constaté après avoir mis "derniereLettre" en alert ! Merci beaucoup ! :D
En effet: je l'ai constaté après avoir mis "derniereLettre" en alert ! Merci beaucoup ! :D
NHenry
Messages postés
15173
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 décembre 2024
350
>
Quedza
Messages postés
242
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
21 janvier 2022
25 juil. 2021 à 17:31
25 juil. 2021 à 17:31
Si la question est résolue, merci de cliquer sur "Marquer comme résolu"
Quedza
Messages postés
242
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
21 janvier 2022
18
25 juil. 2021 à 17:36
25 juil. 2021 à 17:36
Désolé : oubli.
Pour l'erreur, j'ai dû confondre avec PHP.
Pour l'erreur, j'ai dû confondre avec PHP.
Quedza
Messages postés
242
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
21 janvier 2022
18
Modifié le 28 juil. 2021 à 19:03
Modifié le 28 juil. 2021 à 19:03
Pour information et à toutes fins utiles, voilà finalement ce que j’ai imaginé (très fier) :
JavaSript supprimant les espaces des titres hors zone JavaScript, je les ai forcé par l'entité " & n b s p ; ".
setInterval(defilement, 500); function titre(nb) { document.title = '\u266b'+document.getElementById('nom'+nb).title; } function defilement() { document.title = document.title.substring(1)+document.title.substring(0,1); }
JavaSript supprimant les espaces des titres hors zone JavaScript, je les ai forcé par l'entité " & n b s p ; ".