Umlauf: AJAX request/response

Hallo,

in meiner Webanwendung kann ich mit einem Button die asynchrone Kommunikation per AJAX mit dem Server einschalten, wenn ich also den Button klicke, dann läuft diese AJAX- Kommunikation.
So weit so gut,
Jetzt hab ich einen zweiten Button mit welchem ich zum Server etwas schreiben kann über das gleiche "var request = new XMLHttpRequest();"- Object,
Das funktioniert auch noch, nur wenn ich jetzt auf den zweiten Button ziemlich schnell klicke, dann fällt mir die erste Kommunikation aus.

Hat da jemand eine Idee warum das so ist und was ich dagegen machen kann, damit die erste Kommunikation auch weiterläuft, wenn ich den zweiten Button ziemlich schnell und oft hintereinander klicke?

Wäre es eine Lösung, dass ich ein zweites request- Objekt erzeuge, ist das überhaupt möglich?

Vielen dank und Grüße,
Umlauf

  1. Wäre es eine Lösung, dass ich ein zweites request- Objekt erzeuge, ist das überhaupt möglich?

    Das wäre eine Lösung und funktioniert auch.

    Struppi.

    1. habs gerade ausprobiert, funktioniert aber leider nicht -> es kommt am Server nichts an, was passiert eigentlich, wenn ich ein zweites request- Objekt öffne, sind dann 2 Socket vom Browser zum Server offen?

      1. habs gerade ausprobiert, funktioniert aber leider nicht -> es kommt am Server nichts an, ..

        Wenn nichts passiert machst du etwas falsch. Du weißt wo du die Fehlermeldungen findest?

        Struppi.

      2. habs gerade ausprobiert, funktioniert aber leider nicht

        Tipp: baue die Response-Funktion in die Request-Funktion ein und verwende ein eigenes XHR-Objekt nur innerhalb dieser Funktionen.

          
        	function talkoutRequest(){  
        		var xmaob = mob();  
        		var url = "$_SERVER[SCRIPT_NAME]?talkout=1";  
          
        		function talkout(){  
        			if(xmaob.readyState == 4){  
        				if(xmaob.status == 200){  
        					var raw = xmaob.responseText;  
        					if(raw != talkBuffer){  
        						pops++;  
        						talkBuffer = raw;  
        						showTalk(raw.split("|"));							  
        					}  
        					popup();  
        				}  
        				else{  
        					document.getElementById("ajaxhinweis").innerHTML = 'Server antwortet nicht, bitte Seite neu laden.';  
        				}  
        			}  
        		}  
        		xmaob.open("GET", url, true);  
        		xmaob.send(null);  
        		xmaob.onreadystatechange = talkout;  
        	}  
          
        
        

        Bis jetzt mache ich das so und das geht einwandfrei.

        -> es kommt am Server nichts an,

        Hast Du das wirklich geprüft?

        was passiert eigentlich, wenn ich ein zweites request- Objekt öffne, sind dann 2 Socket vom Browser zum Server offen?

        Jaklar.
        Hotti

        --
        Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.