Felix Riesterer: /CSS bei XMLHttpRequest dokumentweit einen Warte-Cursor

Liebe Forumsleser(innen),

heute möchte ich während des Wartens auf den readyState=4 dokumentweit einen Wartecursor einstellen, da ich denke, dass ein User durchaus wissen sollte, dass da sein Klick eine Reaktion im Browser bewirkt.

Es geht um einen Verzeichnisbaum (ähnlich wie hier), der im Admin-Bereich ebendieser Website beim Aufruf nicht komplett gefüllt ist. Wäre er das, dann würde jeder Aufruf dieser Adminseite schlappe 700kb an HTML-Dokument (ohne die File-Icons!) bedeuten - und als "Antwortseite" auf diverse Datei- oder Verzeichnismanipulationen wäre dieser Umstand einfach untragbar.

Wenn nun ein Admin auf ein noch nicht aufgefaltetes Verzeichnis klickt, dann wird dessen Inhalt per XMLHttpRequest nachgeladen und dann - wenn der Request fertig geladen hat - aufgefaltet, damit sein frisch hereingekommener Inhalt begutachtet werden kann.

Eben während des Wartens soll nun dokumentweit der Warte-Cursor angezeigt werden.
document.body.style.cursor = "wait";
Diese Zeile bewirkt tatsächlich den Wartecursor. Aber das wirkt nicht, wenn der Mauszeiger gerade auf einen Link deutet. Aber ebendieses tut er ja, da der Admin gerade auf einen solchen geklickt hat und nun auf eine Reaktion wartet...

Ein zusätzliches "!important" hat überhaupt keine Verbesserung gebracht: Der Mauszeiger auf dem Link bleibt unverändert, anstatt sich in den Wartecursor zu verändern.

Da kam mir die Idee, was wohl wäre, wenn man folgende CSS-Regel vorübergehend per Javascript einflechten könnte:
* { cursor: wait !important; }
Ob das den gewünschten Effekt erzielen würde? Ausprobiert habe ich es noch nicht, da ich noch nicht herausgefunden habe, wie man eine Sternchen-Regel über Javascript erzeugt (und dann hinterher wieder restlos entfernt).

Wer von Euch hat mit soetwas schon Erfahrung sammeln können und kann mir weiterhelfen?

Liebe Grüße aus Ellwangen,

Felix Riesterer.

  1. Hallo Felix.

    Der Mauszeiger auf dem Link bleibt unverändert, anstatt sich in den Wartecursor zu verändern.

    Verändert er sich, wenn man den Mauszeiger nach Einleiten des Nachladens ein kleines Stückchen bewegt?

    Einen schönen Donnerstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
    1. Lieber Ashura,

      Der Mauszeiger auf dem Link bleibt unverändert, anstatt sich in den Wartecursor zu verändern.

      Verändert er sich, wenn man den Mauszeiger nach Einleiten des Nachladens ein kleines Stückchen bewegt?

      das ist so. Das wollte ich oben eigentlich auch so beschrieben haben, jedoch muss zu dieser späten Stunde mein Hirn irgendwie nicht mehr genauer arbeiten können, sonst hättest Du folgenden Satz von oben so interpretieren können:

      Diese Zeile bewirkt tatsächlich den Wartecursor.

      Wenn der Mauszeiger nicht gerade über einem Link sitzt, dann verwandelt er sich tatsächlich in den Wartecursor (unter Windoof ist das eine Sanduhr). Aber bei der Bedienung des Verzeichnisbaumes kann man ja kaum auf etwas anderes als eben einen Link zeigen...

      Noch eine Beobachtung: Mein Opera9, als auch meine Stand-alone-IEs 5.0 und 5.5 zeigen bei einem schnellen Wegbewegen der Maus den Wartecursor so lange an, bis ich die Maus wieder weiterbewege. Auch wenn zwischendurch längst der dokumentweite Cursor auf cursor:default zurückgesetzt wurde, so verharren diese Browser bei unbewegter Maus (die nicht gerade auf einem Link sitzt) im Wartecursor. Der IE6 und mein Firefox2beta1 tun das nicht. Allen Browsern ist aber gemeinsam, dass der Mauszeiger sich dann nicht verändert, wenn er gerade auf einen Link zeigt.

      Daher meine Idee mit dem Sternchen. Aber vielleicht sollte ich jetzt erst einmal ins Bett.

      Ach, wovon ich nachher sowieso träumen werde: Gibt es vielleicht doch auch noch einen Cursor-Wert für "Hintergrundaktivität"? Bei Windoof ist das eine kleine Sanduhr neben dem regulären pfeilartigen Mauszeiger. Dieser wäre für meine Zwecke fast noch besser... Aber wenn es einen solchen Wert gäbe, dann wäre er sicher <http://de.selfhtml.org/css/eigenschaften/anzeigefenster.htm#cursor@title=in der Doku angeführt> worden - ist er aber nicht.

      Liebe Grüße und gute Nacht aus Ellwangen,

      Felix Riesterer.

      1. Hallihallo!

        Nur so eine Idee: Im Netz gibt es zuhauf Skripte, die dem Mauszeiger eine kleine Grafik folgen lassen.
        Würde Dir soetwas vielleicht weiterhelfen?

        Viele liebe Grüße,
        Der Dicki

        1. Lieber Dicki,

          Skripte, die dem Mauszeiger eine kleine Grafik folgen lassen.

          das ist mein Plan B. Ein solches Skript habe ich auch in meiner Sammlung (als Eigenkreation für eine Art Tool-Tip, der mit dem Mauszeiger mitwandert). Es könnte wie gesagt als Plan B herhalten.

          Wenn das mit CSS machbar wäre, dann würde ich CSS den Vorzug geben. Die Javascript-Tool-Tip-Variante hat für mich den Nachteil, dass animierte GIFs unter Umständen unanimiert angezeigt werden... Es gibt einige Posts im Achiv zu diesem Problem (das meines Wissens nie wirklich gelöst wurde).

          Liebe Grüße aus Ellwangen,

          Felix Riesterer.

  2. Hallo Felix.

    Da kam mir die Idee, was wohl wäre, wenn man folgende CSS-Regel vorübergehend per Javascript einflechten könnte:
    * { cursor: wait !important; }
    Ob das den gewünschten Effekt erzielen würde?

    Offenbar ist dem nicht so. Der Cursor verändert sich beim Link erst dann, wenn man mit der Maus ebenselbigen verlässt. Und das ungeachtet dessen, ob direkt formatiert oder per Vererbung erlangt.

    Ich weiß hier leider keinen Rat, tut mir leid.

    Einen schönen Donnerstag noch.

    Gruß, Mathias

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
    1. Hallo Ashu^WMathias,

      Einen schönen Donnerstag noch.
      Gruß, Mathias

      nanu, wieso diese plötzliche Umorientierung?
      Eine kleine Identitätskrise?
      Dein Nick klang immer so interessant-geheimnisvoll ...

      Na dann alles Gute, Fremder! :-)
       Martin

      --
      You say, it cannot be love if it isn't for ever.
      But let me tell you: Sometimes, a single scene can be more to remember than the whole play.
      1. Hallo Martin.

        Einen schönen Donnerstag noch.
        Gruß, Mathias

        nanu, wieso diese plötzliche Umorientierung?

        Weil der alte Name praktisch keinen Zweck mehr erfüllt. Und ihn nur der Erhaltung wegen zu nutzen erschien mir nicht mehr sinnvoll, weshalb ich mich ebenso gut mit meinem bürgerlichen Namen melden kann.

        Eine kleine Identitätskrise?

        Wenn jemand zu seinem richtigen Namen steht? Merkwürdige Schlussfolgerung.

        Dein Nick klang immer so interessant-geheimnisvoll ...

        Mich ihm ganz entledigen werde ich auch nicht, nur hier gehört er ab jetzt der Vergangenheit an.

        Na dann alles Gute, Fremder! :-)

        Nur die Verpackung hat sich geändert, der Inhalt bleibt gleich.

        Einen schönen Donnerstag noch.

        Gruß, Mathias

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
        1. Hallo,

          Weil der alte Name praktisch keinen Zweck mehr erfüllt.

          wieso Zweck? Hat er einen Zweck erfüllt? Ich sehe die teils phantasievoll gewählten Nicks in manchen Foren, Boards, Newsgroups etc. immer nur als witzige Marotte. Einen Zweck erfüllen sie IMHO nicht. Wenn ich meinen realen Namen nicht preisgeben möchte, kann ich mich auch als Lieschen Müller oder Hans-Joachim Übele ausgeben.
          Ich habe auch mal überlegt, ob ich hier im Forum unter einem Pseudonym posten sollte, hab mich dann aber doch zu meinem realen Namen bekannt - zumindest dem Vornamen. Wer den Rest wirklich herausfinden will, findet genügend Ansatzpunkte. ;-)
          Wenn ich zum Ausfüllen eines Online-Registrierungsformulars genötigt werde, obwohl es für das eigentliche Ziel nicht erforderlich wäre (nur wegen der Neugier des Anbieters), bin ich übrigens sehr efinderisch, was Namen angeht.

          Eine kleine Identitätskrise?
          Wenn jemand zu seinem richtigen Namen steht? Merkwürdige Schlussfolgerung.

          Findest du? Wenn man einen bestimmten Nickname wählt, identifiziert man sich doch irgendwie auch damit. Und in deinem Fall, so wie ich mal rausgehört habe, auch mit einer bestimmten Figur (die mir allerdings völlig fremd ist). Und _diese_ Identität gibst du nun gewissermaßen auf.
          Dass du stattdessen mit einer für uns neuen, _realen_ Identität daherkommst, ist völlig in Ordnung - hat aber mit diesem Gedanken nichts zu tun.

          Nur die Verpackung hat sich geändert, der Inhalt bleibt gleich.

          So geht es ja auch mit vielen Alltagsprodukten. ;-)

          Na dann noch einen schönen Tag,
           Martin

          --
          Heutzutage gilt ein Mann schon dann als Gentleman, wenn er wenigstens die Zigarette aus dem Mund nimmt, bevor er eine Frau küsst.
            (Barbra Streisand, US-Schauspielerin)
          1. Hallo Martin.

            Weil der alte Name praktisch keinen Zweck mehr erfüllt.

            wieso Zweck? Hat er einen Zweck erfüllt?

            Ursprünglich diente er zur Anonymisierung. Das hat sich aber spätestens seit meine Internetpräsenz online ist sowieso erledigt. Zudem bin ich der Auffassung, dass Nicknamen in den meisten Fällen distanzierend wirken.

            Keiner dieser Wirkungen erscheint mir noch würdig, sie aufrecht zu erhalten.

            Ich sehe die teils phantasievoll gewählten Nicks in manchen Foren, Boards, Newsgroups etc. immer nur als witzige Marotte.

            Ja, das ist meist der Fall. Mein altes Pseudonym nutzte ich eigentlich auch nur noch aus reiner Macht der Gewohnheit.

            Wenn ich zum Ausfüllen eines Online-Registrierungsformulars genötigt werde, obwohl es für das eigentliche Ziel nicht erforderlich wäre (nur wegen der Neugier des Anbieters), bin ich übrigens sehr efinderisch, was Namen angeht.

            Dito. In solchen Fällen kommen schnell Wegwerf–Passwörter, falls erforderlich, und uralte E–Mail–Adressen wieder zum Vorschein.

            Findest du? Wenn man einen bestimmten Nickname wählt, identifiziert man sich doch irgendwie auch damit. Und in deinem Fall, so wie ich mal rausgehört habe, auch mit einer bestimmten Figur (die mir allerdings völlig fremd ist). Und _diese_ Identität gibst du nun gewissermaßen auf.

            Ja. Und ich tausche sie gegen meine unverschleierte Identität.

            Nur die Verpackung hat sich geändert, der Inhalt bleibt gleich.

            So geht es ja auch mit vielen Alltagsprodukten. ;-)

            Eben, Namen sind nur Schall und Rauch, weiß man doch.

            Na dann noch einen schönen Tag,

            Danke, ebenfalls.

            Gruß, Mathias

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
            [HTML Design Constraints: Logical Markup]
            1. Hallo Ash... *ehm...* Mathias :)

              Eben, Namen sind nur Schall und Rauch, weiß man doch.

              Dann hast du jetzt die Schallmauer durchgebrochen! ;-)

              Grüße
              Thomas

            2. Hi,

              Ursprünglich diente er zur Anonymisierung. Das hat sich aber spätestens seit meine Internetpräsenz online ist sowieso erledigt. Zudem bin ich der Auffassung, dass Nicknamen in den meisten Fällen distanzierend wirken.

              Hmm, ist doch auch nur ein Name - ggf. auch noch der Rufname (jedenfalls bei manchen Nicks).

              Ich war schon Cybaer, da gab es das WWW noch gar nicht (und zum Anonymisieren war der auch nicht).

              In WWW-Zeiten denke ich höchstens über einen Wechsel zu "Webwookie" nach. ;-)

              Aber OK: "Ashura", ich werde dich vermissen - willkommen Mathias. ;-)

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        2. Lieber Mathias,

          nur hier gehört er ab jetzt der Vergangenheit an.

          ein kleines Bisschen bedauere ich das. Immerhin habe ich gelernt, dass man Ashura mit "lieber Ashura" anspricht. Was nützt mir das denn jetzt noch?

          Liebe Grüße aus Ellwangen,

          Felix Riesterer.

          1. Hallo Felix.

            nur hier gehört er ab jetzt der Vergangenheit an.

            ein kleines Bisschen bedauere ich das. Immerhin habe ich gelernt, dass man Ashura mit "lieber Ashura" anspricht. Was nützt mir das denn jetzt noch?

            Dass du nun definitiv über mein Geschlecht Bescheid weißt?

            Einen schönen Donnerstag noch.

            Gruß, Mathias

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
            [HTML Design Constraints: Logical Markup]
        3. Hello out there!

          Weil der alte Name praktisch keinen Zweck mehr erfüllt.

          Hm, auch nicht mit '™' dahinter? SCNR.

          See ya up the road,
          Gunnar

          --
          “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    2. Lieber Mathias (ich vermisse Ashura! - gib sie wieder her!),

      Offenbar ist dem nicht so. Der Cursor verändert sich beim Link erst dann, wenn man mit der Maus ebenselbigen verlässt. Und das ungeachtet dessen, ob direkt formatiert oder per Vererbung erlangt.

      Ich weiß hier leider keinen Rat, tut mir leid.

      dann muss ich wohl auf meinen von dem Dicki vorgeschlagenen Plan B mit mausverfolgendem Tool-Tip-Kästchen umsteigen...

      Danke für Deine Unterstützung!

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

    3. Hallo,

      Der Cursor verändert sich beim Link erst dann, wenn man mit der Maus ebenselbigen verlässt.

      blur() und schon wird der geänderte Cursor umgesetzt. (IE, FF, nicht Opera und Konqueror.)

      Mathias

      1. Lieber molily,

        blur() und schon wird der geänderte Cursor umgesetzt. (IE, FF, nicht Opera und Konqueror.)

        ich habe das nun mit meinem Mausverfolger-Script gelöst. Es lässt ein DIV mit den Mauskoordinaten mitwandern. Beim Absenden meines XMLHttpRequests schalte ich es ein (ein sich drehendes sanduhr.gif erscheint rechts unterhalb des Mauszeigers) und wird beim onreadyState=4 wieder unsichtbar geschaltet.

        Im IE wird dieses DIV anscheinend nie sichtbar geschaltet (warum verstehe ich nicht - Opera und FF tun's), aber wenn der Empfang der XML-Response etwas dauert, dann zeigt er den Cursor für Hintergrundaktivität an. Mir ist das auch Recht.

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

      2. Hallo molily.

        Der Cursor verändert sich beim Link erst dann, wenn man mit der Maus ebenselbigen verlässt.

        blur() und schon wird der geänderte Cursor umgesetzt. (IE, FF, nicht Opera und Konqueror.)

        Hm, im Firefox funktioniert es aber der IE reagiert bei mir genau wie Opera und Konqueror.

        Einen schönen Donnerstag noch.

        Gruß, Mathias

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]