JürgenB: Mozilla: dom.max_script_run_time ändern

Hallo,

ich habe ein Javascript, das ca. 30 s läuft. Leider kommt beim Firefox nach 5 s eine Warnmeldung ("A script on this page is causing mozilla to run slowly. ..."), die durch klick auf OK oder Cancel quittiert werden muss. Cancel bedeutet übrigens "weitermachen".

Die CPU-Zeit, nach der diese Meldung kommt, kann über den Parameter "dom.max_script_run_time" im "about:config" eingestellt werden. Das möchte ich aber dem Seitenbesucher nicht zumuten.

Gibt es daher eine Möglichkeit, diesen Parameter zur Laufzeit des Scriptes zu verändern, evtl. auch nur für eine Sitzung und begleitet von Warnungen?

Gruß, Jürgen

  1. Hallo,

    adressleiste->about:config->dom.max_script_run_time

    gruss

    --
    no strict;
    no warnings;
    79.78 cups of Coffee (Brewed) + Me = Death
    Terrorific!
    1. Hallo Eternius,

      adressleiste->about:config->dom.max_script_run_time

      das habe ich auch schon gefunden, wie in meinem Posting steht. Ich möchte aber den Besucher nicht auffordern, die Einstellungen zu ändern, sondern die möglicherweise auch temporäre Änderung vom Script durchführen lassen.

      Gruß, Jürgen

  2. hi,

    Gibt es daher eine Möglichkeit, diesen Parameter zur Laufzeit des Scriptes zu verändern, evtl. auch nur für eine Sitzung und begleitet von Warnungen?

    Dieser Parameter ist relevant für die Performance des Mozillas, und damit u.U. sogar für die des Gesamtsystems.
    Glaubst du wirklich, du als Scriptersteller solltest diesen ändern können?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo wahsaga,

      Glaubst du wirklich, du als Scriptersteller solltest diesen ändern können?

      ich hatte die Hoffnung, es zu können. Mir ist schon klar, das man den Mozilla/Firefox genauso wie den IE, der hier keine Begrenzung kennt, mit einem einfachen "while(1) {a=b}" lahmlegen kann. Opera gibt seinen Scripten nicht eine so hohe Priorität und bleibt "ansprechbar".

      Es ist, finde ich, schon schade, das man wegen dieser knappen Begrenzung größere Berechnungen im Browser nicht mit JS durchführen kann. Denn den Besuchern steht meistens deutlich mehr Rechenleistung zur Verfügung als sie ein WWW-Server bieten kann.

      Ich werde mal testen, ob ich den Mozilla/Firefox überlisten kann, indem ich die Hauptschleife über setTimeout realisiere. Vieleicht wird dann nach jeder Pause die Stoppuhr neu gestartet.

      Danke für deine Antwort.

      Gruß, Jürgen

      1. hi,

        Es ist, finde ich, schon schade, das man wegen dieser knappen Begrenzung größere Berechnungen im Browser nicht mit JS durchführen kann.

        Du hast doch bereits eine Möglichkeit gefunden, die Berechnung fortführen zu lassen:

        Leider kommt beim Firefox nach 5 s eine Warnmeldung ("A script on this page is causing mozilla to run slowly. ..."), die durch klick auf OK oder Cancel quittiert werden muss. Cancel bedeutet übrigens "weitermachen".

        Weise doch deine Besucher darauf hin, dass dies erforderlich sein könnte, um die Berechnung durchzuführen.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Hallo,

    Gibt es daher eine Möglichkeit, diesen Parameter zur Laufzeit des Scriptes zu verändern, evtl. auch nur für eine Sitzung und begleitet von Warnungen?

    Zum bereits Geschriebenen noch diese Anmerkung: Ich habe mich vor einiger Zeit fuer die Abfrage von svg.enabled interessiert und musste einsehen, dass es zumindest im Web-Kontext praktisch unmoeglich ist, an den Wert zu kommen. Insofern duerften Versuche zum Setzen von Preferences ebenfalls scheitern ...

    Andererseits ist Dein Interesse an dom.max_script_run_time durchaus nachvollziehbar, da der Vorgabewert von 5s (FF 1.0.7 wie FF 1.5 RC3) durchaus knapp sein kann. Bei einem gerade erstellten SVG-Beispiel mit numerischer Integration von Funktionen (eigentlich moderate 10000 Schritte), habe ich auf einem etwas betagteren System (Pentium MMX 200MHz) unter Firefox 1.5 RC3 ebenfalls die genannte Meldung des Zeitlimits erhalten. Mittlerweile konnte ich den Code noch etwas optimieren und bleibe knapp darunter.

    MfG, Thomas