Artur: user überwachen (noch einmal nach oben)

Hallo!

Ich danke euch für Ihre Antworte auf diese Fage gestern. Das hat mich weiter gebracht, aber leider nicht zum Ziel.

Hier noch einmal Beschreibung des Problems:

Auf einer Seite soll überwacht werden ob ein User noch aktiv ist. Und wenn er eine zeit lang keinen link oder keinen button angeklickt hat, soll automatisch eine andere Seite geladen werden.

Ich habe es versucht damit zu lösen:

function TimeOut(action)
{
 var activ;
 alert(action);
 if (action == 'start') activ = window.setTimeout("Hinweis()",4600);
 if (action == 'reset') window.clearTimeout(activ);

}

Beim laden der Site rufe ich die Function mit Parameter 'start' auf. Und wenn auf ein Button geklickt wurde, mit dem Parametr 'reset'. Leider funktioniert es nicht wie es sollte. Die Zeit läeuft trozdem ab. Was mache ich falsh?

Danke im vorraus!

Artur

  1. Hallo!

    Ich danke euch für Ihre Antworte auf diese Fage gestern. Das hat mich weiter gebracht, aber leider nicht zum Ziel.

    Hier noch einmal Beschreibung des Problems:

    Auf einer Seite soll überwacht werden ob ein User noch aktiv ist. Und wenn er eine zeit lang keinen link oder keinen button angeklickt hat, soll automatisch eine andere Seite geladen werden.

    Ich habe es versucht damit zu lösen:

    function TimeOut(action)
    {
    var activ;
    alert(action);
    if (action == 'start') activ = window.setTimeout("Hinweis()",4600);
    if (action == 'reset') window.clearTimeout(activ);

    }

    Beim laden der Site rufe ich die Function mit Parameter 'start' auf. Und wenn auf ein Button geklickt wurde, mit dem Parametr 'reset'. Leider funktioniert es nicht wie es sollte. Die Zeit läeuft trozdem ab. Was mache ich falsh?

    Danke im vorraus!

    Artur

    wie wäre es wenn du es vielleicht mit dem Meta-Tag probierst. Der funktioniert sicher und wird beim laden einer neuen Seite wieder auf null gesetzt.

    mfg
    teal

    1. Hallo!

      Ich danke euch für Ihre Antworte auf diese Fage gestern. Das hat mich weiter gebracht, aber leider nicht zum Ziel.

      Hier noch einmal Beschreibung des Problems:

      Auf einer Seite soll überwacht werden ob ein User noch aktiv ist. Und wenn er eine zeit lang keinen link oder keinen button angeklickt hat, soll automatisch eine andere Seite geladen werden.

      Ich habe es versucht damit zu lösen:

      function TimeOut(action)
      {
      var activ;
      alert(action);
      if (action == 'start') activ = window.setTimeout("Hinweis()",4600);
      if (action == 'reset') window.clearTimeout(activ);

      }

      Beim laden der Site rufe ich die Function mit Parameter 'start' auf. Und wenn auf ein Button geklickt wurde, mit dem Parametr 'reset'. Leider funktioniert es nicht wie es sollte. Die Zeit läeuft trozdem ab. Was mache ich falsh?

      Danke im vorraus!

      Artur

      wie wäre es wenn du es vielleicht mit dem Meta-Tag probierst. Der funktioniert sicher und wird beim laden einer neuen Seite wieder auf null gesetzt.

      Das Problem ist, das es nur auf eine andere Seite weitergeleitet werden soll, wenn der User keinen Button anklickt. Und auf dieser seite befindet sich eine Virtuelle Tastatur, die mann mit dem Maus bedient. So, dass ein unerfahrener User ziemlich Lange brauchen wird um seine Eingaben zu machen. Es soll daswegen, jedesmal wenn er auf einen Button klickt die TimeOut zurückgesetzt werden.

      1. Hallo!

        Ich danke euch für Ihre Antworte auf diese Fage gestern. Das hat mich weiter gebracht, aber leider nicht zum Ziel.

        Hier noch einmal Beschreibung des Problems:

        Auf einer Seite soll überwacht werden ob ein User noch aktiv ist. Und wenn er eine zeit lang keinen link oder keinen button angeklickt hat, soll automatisch eine andere Seite geladen werden.

        Ich habe es versucht damit zu lösen:

        function TimeOut(action)
        {
        var activ;
        alert(action);
        if (action == 'start') activ = window.setTimeout("Hinweis()",4600);
        if (action == 'reset') window.clearTimeout(activ);

        }

        Beim laden der Site rufe ich die Function mit Parameter 'start' auf. Und wenn auf ein Button geklickt wurde, mit dem Parametr 'reset'. Leider funktioniert es nicht wie es sollte. Die Zeit läeuft trozdem ab. Was mache ich falsh?

        Danke im vorraus!

        Artur

        wie wäre es wenn du es vielleicht mit dem Meta-Tag probierst. Der funktioniert sicher und wird beim laden einer neuen Seite wieder auf null gesetzt.

        Das Problem ist, das es nur auf eine andere Seite weitergeleitet werden soll, wenn der User keinen Button anklickt. Und auf dieser seite befindet sich eine Virtuelle Tastatur, die mann mit dem Maus bedient. So, dass ein unerfahrener User ziemlich Lange brauchen wird um seine Eingaben zu machen. Es soll daswegen, jedesmal wenn er auf einen Button klickt die TimeOut zurückgesetzt werden.

        frage: du hast doch eine alert box, wird denn dort auch reset angezeigt wenn du auf einen Button klickst??

        mfg
        teal

        1. Hallo!

          Ich danke euch für Ihre Antworte auf diese Fage gestern. Das hat mich weiter gebracht, aber leider nicht zum Ziel.

          Hier noch einmal Beschreibung des Problems:

          Auf einer Seite soll überwacht werden ob ein User noch aktiv ist. Und wenn er eine zeit lang keinen link oder keinen button angeklickt hat, soll automatisch eine andere Seite geladen werden.

          Ich habe es versucht damit zu lösen:

          function TimeOut(action)
          {
          var activ;
          alert(action);
          if (action == 'start') activ = window.setTimeout("Hinweis()",4600);
          if (action == 'reset') window.clearTimeout(activ);

          }

          Beim laden der Site rufe ich die Function mit Parameter 'start' auf. Und wenn auf ein Button geklickt wurde, mit dem Parametr 'reset'. Leider funktioniert es nicht wie es sollte. Die Zeit läeuft trozdem ab. Was mache ich falsh?

          Danke im vorraus!

          Artur

          wie wäre es wenn du es vielleicht mit dem Meta-Tag probierst. Der funktioniert sicher und wird beim laden einer neuen Seite wieder auf null gesetzt.

          Das Problem ist, das es nur auf eine andere Seite weitergeleitet werden soll, wenn der User keinen Button anklickt. Und auf dieser seite befindet sich eine Virtuelle Tastatur, die mann mit dem Maus bedient. So, dass ein unerfahrener User ziemlich Lange brauchen wird um seine Eingaben zu machen. Es soll daswegen, jedesmal wenn er auf einen Button klickt die TimeOut zurückgesetzt werden.

          frage: du hast doch eine alert box, wird denn dort auch reset angezeigt wenn du auf einen Button klickst??

          Ja, denn habe ich auch extra eingebaut um zu überprüfen ob die Parametr richtig ankommen. Un die kommen auch richtig an. Trozdem funktioniert es nicht :(

          1. Hallo!

            Ich danke euch für Ihre Antworte auf diese Fage gestern. Das hat mich weiter gebracht, aber leider nicht zum Ziel.

            Hier noch einmal Beschreibung des Problems:

            Auf einer Seite soll überwacht werden ob ein User noch aktiv ist. Und wenn er eine zeit lang keinen link oder keinen button angeklickt hat, soll automatisch eine andere Seite geladen werden.

            Ich habe es versucht damit zu lösen:

            function TimeOut(action)
            {
            var activ;
            alert(action);
            if (action == 'start') activ = window.setTimeout("Hinweis()",4600);
            if (action == 'reset') window.clearTimeout(activ);

            }

            Beim laden der Site rufe ich die Function mit Parameter 'start' auf. Und wenn auf ein Button geklickt wurde, mit dem Parametr 'reset'. Leider funktioniert es nicht wie es sollte. Die Zeit läeuft trozdem ab. Was mache ich falsh?

            Danke im vorraus!

            Artur

            wie wäre es wenn du es vielleicht mit dem Meta-Tag probierst. Der funktioniert sicher und wird beim laden einer neuen Seite wieder auf null gesetzt.

            Das Problem ist, das es nur auf eine andere Seite weitergeleitet werden soll, wenn der User keinen Button anklickt. Und auf dieser seite befindet sich eine Virtuelle Tastatur, die mann mit dem Maus bedient. So, dass ein unerfahrener User ziemlich Lange brauchen wird um seine Eingaben zu machen. Es soll daswegen, jedesmal wenn er auf einen Button klickt die TimeOut zurückgesetzt werden.

            frage: du hast doch eine alert box, wird denn dort auch reset angezeigt wenn du auf einen Button klickst??

            Ja, denn habe ich auch extra eingebaut um zu überprüfen ob die Parametr richtig ankommen. Un die kommen auch richtig an. Trozdem funktioniert es nicht :(

            schreib die Funktion vielleicht mal so um:

            function TimeOut(action)
            {
            alert(action);
            if (action == 'start') activ = window.setTimeout("Hinweis()",4600);
            if (action == 'reset') window.clearTimeout(activ);
            }

            hab ich erst jetzt gesehen, klein aber tükisch ;-)

            mfg
            teal

            1. Ich danke die herzlich, teal!

              Es lag also an dem Schlusselwort var, wenn ich das richtig verstehe?

              Danke

              Artur

              Hallo!

              Ich danke euch für Ihre Antworte auf diese Fage gestern. Das hat mich weiter gebracht, aber leider nicht zum Ziel.

              Hier noch einmal Beschreibung des Problems:

              Auf einer Seite soll überwacht werden ob ein User noch aktiv ist. Und wenn er eine zeit lang keinen link oder keinen button angeklickt hat, soll automatisch eine andere Seite geladen werden.

              Ich habe es versucht damit zu lösen:

              function TimeOut(action)
              {
              var activ;
              alert(action);
              if (action == 'start') activ = window.setTimeout("Hinweis()",4600);
              if (action == 'reset') window.clearTimeout(activ);

              }

              Beim laden der Site rufe ich die Function mit Parameter 'start' auf. Und wenn auf ein Button geklickt wurde, mit dem Parametr 'reset'. Leider funktioniert es nicht wie es sollte. Die Zeit läeuft trozdem ab. Was mache ich falsh?

              Danke im vorraus!

              Artur

              wie wäre es wenn du es vielleicht mit dem Meta-Tag probierst. Der funktioniert sicher und wird beim laden einer neuen Seite wieder auf null gesetzt.

              Das Problem ist, das es nur auf eine andere Seite weitergeleitet werden soll, wenn der User keinen Button anklickt. Und auf dieser seite befindet sich eine Virtuelle Tastatur, die mann mit dem Maus bedient. So, dass ein unerfahrener User ziemlich Lange brauchen wird um seine Eingaben zu machen. Es soll daswegen, jedesmal wenn er auf einen Button klickt die TimeOut zurückgesetzt werden.

              frage: du hast doch eine alert box, wird denn dort auch reset angezeigt wenn du auf einen Button klickst??

              Ja, denn habe ich auch extra eingebaut um zu überprüfen ob die Parametr richtig ankommen. Un die kommen auch richtig an. Trozdem funktioniert es nicht :(

              schreib die Funktion vielleicht mal so um:

              function TimeOut(action)
              {
              alert(action);
              if (action == 'start') activ = window.setTimeout("Hinweis()",4600);
              if (action == 'reset') window.clearTimeout(activ);
              }

              hab ich erst jetzt gesehen, klein aber tükisch ;-)

              mfg
              teal

              1. eigentlich nicht

                was du gemacht hast war ganz simpel. wenn du sagst var test; dann wird die Variable immer geleert, also neu erstellt. Das heisst das in dem handel active kein input war und so konnte die Funktion clearTimeout() nicht richtig ausgeführt werden. so simpel aber man muss trotzdem drafu kommen.

                mfg
                teal

                1. Aloha!

                  was du gemacht hast war ganz simpel. wenn du sagst var test; dann wird die Variable immer geleert, also neu erstellt. Das heisst das in dem handel active kein input war und so konnte die Funktion clearTimeout() nicht richtig ausgeführt werden. so simpel aber man muss trotzdem drafu kommen.

                  Nö. mit "var variable" wird eine im umgebenden Block lokale Variable angelegt. Das bedeutet: Nach Ende der Funktion wird ihr Wert vergessen. Logischerweise kann beim nächsten Funktionsaufruf dann der Timeout nicht mehr gelöscht werden.

                  Besser: Außerhalb der Funktion mit "var variable" eine globale Variable anlegen, auf die innerhalb der Funktion zugegriffen werden kann. Das Weglassen von "var" hat eher zufällig die richtigen Auswirkungen.

                  - Sven Rautenberg

      2. Hallo!

        Ich danke euch für Ihre Antworte auf diese Fage gestern. Das hat mich weiter gebracht, aber leider nicht zum Ziel.

        Hier noch einmal Beschreibung des Problems:

        Auf einer Seite soll überwacht werden ob ein User noch aktiv ist. Und wenn er eine zeit lang keinen link oder keinen button angeklickt hat, soll automatisch eine andere Seite geladen werden.

        Ich habe es versucht damit zu lösen:

        function TimeOut(action)
        {
        var activ;
        alert(action);
        if (action == 'start') activ = window.setTimeout("Hinweis()",4600);
        if (action == 'reset') window.clearTimeout(activ);

        }

        Beim laden der Site rufe ich die Function mit Parameter 'start' auf. Und wenn auf ein Button geklickt wurde, mit dem Parametr 'reset'. Leider funktioniert es nicht wie es sollte. Die Zeit läeuft trozdem ab. Was mache ich falsh?

        Danke im vorraus!

        Artur

        wie wäre es wenn du es vielleicht mit dem Meta-Tag probierst. Der funktioniert sicher und wird beim laden einer neuen Seite wieder auf null gesetzt.

        Das Problem ist, das es nur auf eine andere Seite weitergeleitet werden soll, wenn der User keinen Button anklickt. Und auf dieser seite befindet sich eine Virtuelle Tastatur, die mann mit dem Maus bedient. So, dass ein unerfahrener User ziemlich Lange brauchen wird um seine Eingaben zu machen. Es soll daswegen, jedesmal wenn er auf einen Button klickt die TimeOut zurückgesetzt werden.

        nimm doch mal die Zeile "var activ;" über den Funktionsaufruf ;-)

        mfg
        teal