Announcement

Collapse
No announcement yet.

mehrere XMLHttpRequests? Serveranfragen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • mehrere XMLHttpRequests? Serveranfragen

    Hallo Forum..

    ich würde gerne meinen Server mit mehreren Anfragen bombardieren und die ergebnisse entsprechend speichern. verkürzt unten dargestellt ...

    dazu habe ich ne kleine forschleife gebaut.. dort dann mehrere request-objekte erstellt, nacheinander..

    die ergebnisse habe ich der kürze halber jeweils als alert ausgegeben..


    PHP Code:
    orte= new Array(); //korrigiert
            
    orte[0]="buxdehude";
            
    orte[1]="Schlumpfhausen";
            
    orte[2]="Entenhausen";



    req=new Array(); //vorerst statisch da ich weiß das es immom. nur 3 sind.
    for (i=0i<orte.length; ++i
    {

     
    req[i] = (window.XMLHttpRequest)?new XMLHttpRequest():((window.ActiveXObject)?new ActiveXObject("Microsoft.XMLHTTP"):false);

    //alert(req[i]) zeigt objekt an

      
    url='http://localhost/test/XS_REQUEST2?status=empty&....&orte[i]'// in der url steht das richtige, denn eine einzelne abfrage geht....

     
    req[i].open("GET",url,true);
     
    req[i].onreadystatechange = function()
     {
        if(
    req[i].readyState == 0){  //---> hier gibs schon fehler.....req[i] undefined
         //....
     
    }else if(req[i].readyState == 1){
       
    //..
     
    }else if(req[i].readyState == 2){
       
    //..
     
    }else if(req[i].readyState == 3){
       
    //..
     
    }else if(req[i].readyState == 4)
            {
                   if(
    req[i].status == 200 || req[i].status == "OK")
                  {
                       var 
    htmlreq[i].responseText;

                        var 
    wo=html.lastIndexOf('<input type="hidden" name="eingabe_ort" value="')//wo?
                        
    var ergebnis=html.substr(2463,16); //ah da...vorerst mal
                        
    alert(ergebnis); //nacheinander die orte
                  
    } }else{
                    
    alert("ERROR: "+req[i].statusText);
                   
                    }
             }
     
    req[i].send(null);
    }
    //for-ende 
    leider zeigt schon die erste abfrage einen fehler "req[i] undefined"
    mir scheint das es nicht möglich ist die objekte in das array abzuspeichern aber mein alert zeigt ein geschaffenes array an siehe alert (req[i]) daher dachte ich sowas geht....

    weiss da jemand rat.
    Zuletzt editiert von sten; 30.08.2011, 12:57.

  • #2
    Array der Größe 2 mit 3 Elementen...
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      Array der Größe 2 mit 3 Elementen...
      gut wieder verwechselt mit c++ .. wurde korrigiert. ist jetzt new Array().. das problem bleibt trotzdem.. .. schade..
      also die jeweils geliefertern urls sind richtig ... wenn ich diese selbst in die adresszeile eingebe liefert er mir ein ergebnis....
      muss also an was anderem liegen. hmmmm
      Zuletzt editiert von sten; 30.08.2011, 13:04.

      Comment


      • #4
        gut wieder verwechselt mit c
        In C ist das genau so....

        for (i=o;

        Buchstabe o???
        Christian

        Comment


        • #5
          Originally posted by Christian Marquardt View Post
          In C ist das genau so....

          for (i=o;

          Buchstabe o???
          nö, wenn du 3 elemente hast dann fängs bei 0 an und du schreibst nur [2] (0..1..2) - aber egal... war mein fehler... bei der schleife is es ne "null" leider
          dachte auch grade das isses...

          ich glaube das req[i] nicht als objekte aktzeptiert werden.. bzw. keines ist zumindest zeigt das der IE an (aber gut ....was der anzeigt...)

          hmm ich sehe grade in den Protokollen des Servers, dass anscheinend mein server die anfragen erhält ... soll heißen 3 stück.. also das scheint schonmal ok zu sein.. leider seh ich noch net die antworten bzw. find das dazugehörige protokoll nicht :...( aber das ist nicht das problem... warum macht der muggen
          beim"req[i].readyState == 0" hmm ..

          interessanterweise wenn ich aus
          req[i] = (window.XMLHttpRequest)?new XMLHttpRequest()(window.ActiveXObject)?new ActiveXObject("Microsoft.XMLHTTP"):false);
          bzw aus dem req[i] ->var req mache also d.h. das es kein array mehr ist geht eine anfrage durch... heißt ich bekomme ergebnisse sobald es ein array wird bzw. eben mehrere anfragen gehts nimmer

          Comment


          • #6
            nö, wenn du 3 elemente hast dann fängs bei 0 an und du schreibst nur [2]
            Dann kennst du anderes C als ich....http://www.cplusplus.com/doc/tutorial/arrays/
            Christian

            Comment


            • #7
              Originally posted by sten View Post
              nö, wenn du 3 elemente hast dann fängs bei 0 an und du schreibst nur [2] (0..1..2) - aber egal... war mein fehler... bei der schleife is es ne "null" leider
              dachte auch grade das isses...

              ich glaube das req[i] nicht als objekte aktzeptiert werden.. bzw. keines ist zumindest zeigt das der IE an (aber gut ....was der anzeigt...)

              hmm ich sehe grade in den Protokollen des Servers, dass anscheinend mein server die anfragen erhält ... soll heißen 3 stück.. also das scheint schonmal ok zu sein.. leider seh ich noch net die antworten bzw. find das dazugehörige protokoll nicht :...( aber das ist nicht das problem... warum macht der muggen
              beim"req[i].readyState == 0" hmm ..

              interessanterweise wenn ich aus
              req[i] = (window.XMLHttpRequest)?new XMLHttpRequest()(window.ActiveXObject)?new ActiveXObject("Microsoft.XMLHTTP"):false);
              bzw aus dem req[i] ->var req mache also d.h. das es kein array mehr ist geht eine anfrage durch... heißt ich bekomme ergebnisse sobald es ein array wird bzw. eben mehrere anfragen gehts nimmer



              Originally posted by Christian Marquardt View Post
              Dann kennst du anderes C als ich....http://www.cplusplus.com/doc/tutorial/arrays/
              jo okay hast gewonnen man definiert [3] und adressiert aber Anzahl - 1 an..


              gut dennoch... s.o. bleibt, warum sollte man die requests nicht in array speichern können muss doch gehen ...
              Zuletzt editiert von sten; 30.08.2011, 14:29.

              Comment


              • #8
                hmm interessant ich hab bei

                req[i].open("GET",url,true);

                nun false.. und jetzt gehts... hehe hmhmhmm....

                nee andere sach wäre noch wie man gescheit die antworten von responseText in ne xml-form bringt..ist ja ein string... mit ner kompletten htmlseite..als antwort..
                evtl. wenn ich soweit bin dazu mehr. ach noch was muss man die xmlhttprequests net irgendwie
                zerstören ... wenn ich jetzt nee liste von 10000 abarbeite habe ich 10000 xmlrequest-objekte

                oder gehen die von selbst hops sowas wie garbagecollector?

                Comment


                • #9
                  req[i].open("GET",url,true);

                  Synchroner <-> Asynchroner Ablauf
                  Christian

                  Comment

                  Working...
                  X