IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Message d'erreur "Stack overflow"


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Septembre 2013
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 3
    Par d�faut Message d'erreur "Stack overflow"
    Bonjour � tous,

    Apr�s des heures de recherche, je n'ai toujours pas trouv� d'o� provient l'erreur de "Stack overflow at line : ..".
    J'explique rapidement la partie qui est concern� : il s'agit d'une fiche client qui m'indique les postes sur lequel il est rattach�. Lorsque je clique sur "Supprimer" l'erreur appara�t...

    J'utilise JS et IE8 en local

    Voici le bout de code dans le .js :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function SupprimerPoste(Liaison, Postes)
    	{
    		if (Postes == 2)
    		{
    			alert("Un contact doit être rattaché à au moins un poste");
    		}
    		else
    		{
    			var SupprPoste = ConnectorDb("DELETE", "SupprimerPoste|SuccesEchec", Liaison);		
    			if (SupprPoste != "Echec")
    			{
    				window.location.reload();
    			}
    			else
    			{
    				alert("Echec lors de la suppression");
    			}
    		}
    	}
    Merci pour votre aide et bonne f�te � tous !

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    je dirais que tu as une boucle infinie ..
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de D�veloppez !

  3. #3
    Candidat au Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Septembre 2013
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 3
    Par d�faut
    Citation Envoy� par SpaceFrog Voir le message
    je dirais que tu as une boucle infinie ..
    Merci pour ta rapidit�.

    J'ai lu que �a pouvez �tre soit � cause d'une boucle infinie ou alors un erreur sur la pile... Je vais faire diff�rents test pour voir o� �a plante

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    avec la console firebug met sun point d'arret et fais un pas � pas ...
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de D�veloppez !

  5. #5
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par d�faut
    Ou si tu utilises les Chrome Dev Tools, place debugger; dans ton code.

    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    var i = 0, arr = ["un", "deux", "trois"], len = arr.length;
     
    for (; i < len ; i++) {
      debugger;
      console.log(i + ' : ' + arr[i]);
    }

    Sous IE8, cette erreur "Stack overflow at line : .." apparait sous forme de "popup" non ?
    IE 8 = Limit� en nombre de r�cursions (une douzaine je crois) quand une fonction r�cursive est rattach�e � l'objet global (window). Par exemple, ce code va g�n�rer un Stack overflow at line : .. sous IE8 (en admettant que le nombre totale de r�cursion autoris�e est de 12) :
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    window.recursive = function(nb) {
      if (nb !== 0) {
        console.log('nb : ' + nb);
        recursive(nb - 1);
      }
    }
    recursive(13);
    Il faut donc mettre cette fonction r�cursive dans une variable non attach�e au scope global (window). Par exemple, en utilisant le "module pattern" :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    (function(){
      // la fonction récursive est locale
      var recursiveLocal = function(nb) {
        if (nb !== 0) {
          console.log('nb : ' + nb);
          recursiveLocal(nb - 1);
        }
      }
     
      // on attache notre fonction locale à une fonction globale pour y accéder en dehors de ce scope. La fonction locale sera "utilisée" pour faire la récursivité
      window.recursive = recursiveLocal;
    }());
     
    recursive(13);
    Ainsi, la r�cursion se passe dans une variable locale et non plus dans une variable gloable = IE8 est content.

  6. #6
    Candidat au Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Septembre 2013
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 3
    Par d�faut
    Merci pour cette r�ponse mais je crois que je n'ai pas tout compris, enfin, je ne sais pas comment exploiter ce code (o� le placer et comment l'utiliser )

Discussions similaires

  1. Vba Access - message d'erreur overflow
    Par christian81 dans le forum VBA Access
    R�ponses: 5
    Dernier message: 15/08/2007, 15h10
  2. Erreur Stack Overflow
    Par Soulama dans le forum Delphi
    R�ponses: 3
    Dernier message: 03/05/2007, 13h32
  3. Message d'erreur Overflow
    Par Sofie109 dans le forum Access
    R�ponses: 3
    Dernier message: 25/07/2006, 09h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo