| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> Programmation JavaScript >> Content
    Comment réparer une rupture de la pile erreur d'espace en JavaScript
    La clé de la fixation d'un " Out of Space Stack " d'erreur, aussi, plus généralement connu comme une erreur de débordement de pile , est d'abord de comprendre ce que cela signifie . Quand une fonction est appelée en JavaScript, la fonction et ses variables sont copiés dans la mémoire dans ce qu'on appelle la pile. Si cette fonction appelle une autre fonction ( ou la même fonction à nouveau) , puis la fonction fille est également ajouté à la pile. Si cette forme d' appels récursifs de fonctions dépasse la limite de récursion qui est défini par le navigateur, puis le JavaScript renverra une erreur de débordement de pile. Instructions
    1

    vérifier une fonction infiniment boucle. C'est la cause la plus simple et la plus courante d'une erreur de débordement de pile. Chaque fois qu'une fonction s'appelle elle-même , les instructions conditionnelles à ce que la fonction ne peut jamais se boucle en une erreur de dépassement . Utilisez une variable de compteur ou une variable d' initialisation, ou vérifier la valeur d'une variable qui est manipulé par la fonction de déterminer si oui ou non il a été déjà exécuté.
    2

    Vérifier deux ou plusieurs fonctions qui appellent chaque l'autre pour former une boucle sans fin . Chaque fois qu'une fonction appelle une autre , il faut savoir que si la seconde fonction rappelle le premier , il peut être possible pour le code de la boucle à l'intérieur de ces fonctions. Cela peut même arriver avec plus de deux fonctions , et il peut être beaucoup plus difficile à repérer d'une fonction de boucle. La solution est la même de toute façon : Utilisez des instructions conditionnelles pour protéger le code contre le bouclage infiniment
    3

    Vérifiez que les niveaux élevés de récurrence qui sont nécessaires pour une fonction à exécuter. . Parfois, fonctions récursives profondément ne sont pas un oubli, mais font partie de la conception du code. Si c'est le cas, alors voir si la fonction peut être décomposée en multiples fonctions qui s'exécutent en série , chacun ayant un faible niveau de récursivité.
    4

    Créer votre propre pile . Pour cela, créez un tableau qui va gérer les variables de la fonction a besoin pour exécuter , puis en appelant la fonction dans une boucle. En stockant ces variables , puis en appelant la fonction séquentielle à partir d'une boucle, vous pouvez imiter le comportement d'une fonction récursive sans compter sur le comportement de la pile de JavaScript.

    Previous :

    next :
      articles connexes
    ·Comment graphe avec jQuery 
    ·Comment utiliser une classe Array en JavaScript 
    ·Comment faire pour supprimer un sous-domaine en JavaScr…
    ·Comment appeler JavaScript partir d'un modèle HTML 
    ·Comment créer des applications Silverlight avec JavaSc…
    ·Arrondir des numéros de Javascript 
    ·Comment savoir combien d' images sont dans un div avec …
    ·Comment afficher les heures et minutes dans deux domain…
    ·Comment changer OnSubmit 
    ·Comment faire un Panier JavaScript 
      articles en vedette
    ·Comment faire une instruction conditionnelle en PHP 
    ·Qu'est-ce que PHP -Nuke 
    ·Comment écrire un parcours préfixe 
    ·Comment savoir sténodactylographie 
    ·Comment faire pour supprimer les crochets d'une chaîne…
    ·Qu'est-ce qu'un RSE dans LabVIEW 
    ·Comment utiliser une case à cocher dans un GroupBox da…
    ·Comment faire pour convertir Enum à cordes en Java 
    ·Méthodes des objets WSH 
    ·Java Exceptions d'entrée 
    Copyright © Connaissances Informatiques http://fr.wingwit.com