AJAX - do-while-schleife

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • AJAX - do-while-schleife

    Hallo, ich habe bei einem AJAX-Request eine while-schleife eingebaut um anzuzeigen wie der Status ist... Solange die Anfrage noch bearbeitet wird soll ein Loading... angezeigt werden. Wenn alles beendet ist soll es ausgeblendet werden und ein Text angezeigt werden.

    Aber bei mir bleibt nur das Loading... stehen. Kann mir wer sagen, was an meiner Schleife falsch ist?

    Quellcode

    1. function handleCheckLoginResponse() {
    2. var loader = '<img src="images/icons/ajax-loader.gif" />';
    3. do {
    4. displayMessage (loader);
    5. } while ((ajax.readyState == 4) && (ajax.status == 200)) {
    6. if ((ajax.readyState == 4) && (ajax.status == 200)) {
    7. var response = ajax.responseText;
    8. displayMessage (response);
    9. }
    10. }
    11. }
    Alles anzeigen


    Danke
    so long
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • Quellcode

    1. function handleCheckLoginResponse() {
    2. var response = NULL;
    3. var loader = '<img src="images/icons/ajax-loader.gif" />';
    4. do {
    5. displayMessage (loader);
    6. } while ((ajax.readyState == 3) && (ajax.status == 200)) {
    7. if ((ajax.readyState == 4) && (ajax.status == 200)) {
    8. response = ajax.responseText;
    9. displayMessage (response);
    10. }
    11. }
    12. }
    Alles anzeigen


    könnte noch anpassungen vertragen aber sollte zumindest die richtung aufweisen
    (sry grad wenig zeit)

    mfg da BendIt
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!
  • dann tausch das halt mal...

    hab atm leider keine zeit ums selber zu testen, aber ich würde sagen dass es an readystate / status liegt.

    loading soll angezeigt werden solange die daten nicht vollständig "da" sind

    und sobald die daten da sind soll ne msg kommen oder ?
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!
  • Ja, genau so soll es sein...

    Habe es jetzt mal so versucht (habe schon alle denklichen kombinationen durch)

    Quellcode

    1. function handleCheckLoginResponse() {
    2. var response = 0;
    3. var loader = '<img src="images/icons/ajax-loader.gif" />';
    4. do {
    5. displayMessage (loader);
    6. } while ((ajax.readyState == 4));
    7. if ((ajax.readyState == 4)) {
    8. response = ajax.responseText;
    9. displayMessage (response);
    10. }
    11. }
    Alles anzeigen


    Immer noch das selbe... der "loader bleibt"
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • öhm.. schaut euch die Syntax nochmal an

    Quellcode

    1. do {
    2. }while();


    weiß die stati gar nicht auswendig. Aber was ist der 3er? Bei einer Schleife hätte ich lieber status != 4 abgefragt.

    Aber die handleLoginResponse() wird doch vermutlich sowieso bei JEDEM onreadystatechange automatisch aufgerufen. Wird doch über ajax.onreadystatechange zugewiesen? Somit bräuchtest du auch keine Schleife.

    Eine if/else reicht vollkommen

    Quellcode

    1. function handleCheckLoginResponse() {
    2. if(ajax.readyState == 4)
    3. displayMessage (response);
    4. else
    5. displayMessage ('<img src="images/icons/ajax-loader.gif" />');
    6. }
  • probiers doch einfach mal mit alerts anstat der nachricht ;=)

    dann weiste auch ob und wann das ereigniss eintreten soll.

    also anstat das loading auszugeben machst du alert('pic');
    und bei response kannste ja alert(ajax.responsetext) bzw irgendein anderen string nehmen.

    ziemlich nützlich bei der fehlersuche...

    und falls du mit ff testest, denk an den "firebug"-bug :)
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!
  • Ok, das funktioniert soweit nur das ich es nen paar maken hat, wo ich hier nicht drauf eingehe, da ich hier 2 Topics habe die stark in einander greifen :)...

    Betrachten wir das erstmal als gelöst (das mit der Schleife) :)

    alert ist echt super :)
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.