[JavaScript] Funktion beenden

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Hanskopf, 1. Dezember 2011 .

  1. 1. Dezember 2011
    Funktion beenden

    Hi,

    ich weiß bereits, dass man eine Funktion mittels "return;" beenden und eine Schleife mittels "break;" beenden kann. Das was ich suche geht aber darüber hinaus!

    Und zwar habe ich eine Funktion die abhängig vom Wert eines Textfeldes recht rechenaufwendige Zeilen enthält. Dazu gehören z.B.
    1. mehrere Schleifen
    2. eval Funktionen die auf große JSON Strings angewendet werden (eval ist nich sicher aber in meinem Fall reciht das erstmal )
    3. Zeichnen in ein Canvas
    4. usw.

    Sobald der Benutzer den Wert im Textfeld ändert sollen die Berechnungen die über die zuvor aufgerufene Funktion gestartet wurden alle sofort beendet werden!
    Bspw wenn grad ein "eval" auf einem riesigen JSON String läuft soll sofort abgebrochen werden usw.

    Ideal wäre sowas wie bei "setInterval()" und "clearInterval()".
    Also eine Art Referenz zu der aufgerufenen Funktion und dann eine Methode die diese Funktion und all ihre Berechnungen killt!
     
  2. 1. Dezember 2011
    AW: Funktion beenden

    hi,
    ich weiß jetzt nicht wie dein genaues vorgehen ist.
    aber ich würde z.b. dein canvas element per js erstellen (init()) und deine funktion ausführen.
    bei einen event onChange wird das canvas element entfernt und init() ausgeführt.
    dein ganzer spass solte eigentlich von vorne beginnen.
    deine schleifen usw. sollten bei einen neu aufruf von vorne beginnen, daher brauchst du kein clear, meine ich.
     
  3. 3. Dezember 2011
    AW: Funktion beenden

    wenn schleifen laufen oder sonstiger code ausgeführt wird ist es sowieso nicht möglich auf events zu reagieren, die diese erst verarbeitet werden wenn deine schleifen und funktionen beendet wurden.

    du suchst web-worker:
    Using web workers - Web developer guide | MDN
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.