[JavaScript] XMLHttpRequest() mehrfach aufruf

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Faultier, 4. März 2012 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 4. März 2012
    XMLHttpRequest() mehrfach aufruf

    HTML:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <head>
     <meta http-equiv="content-type" content="text/html; charset=windows-1250">
     <meta name="generator" content="PSPad editor, www.pspad.com">
     <title></title>
     </head>
     <script>
     
     function test(b){
     aktiv = setInterval('pr(b)',3000);
     }
     
     function pr(benutzerid){ 
     url='./test.php?bid='+ benutzerid;
     http_request = new XMLHttpRequest();
     http_request.open('GET', url, true);
     http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
     http_request.send(null);
     
     window.alert("test"); 
     }
     
     </script>
     <body>
     <a href="javascript:test(100)">klick</a>
     </body>
    </html>
    
    test.php einfache sql insert anweisung auf pdo basis..

    Hey ihrs!


    Ich möchte gerne die "pr" funktion mehrfach aufrufen lassen, allerdings funktioniert das so nicht richtig :| Wenn ich "<a href="javascript r(100)">klick</a>" mache und mehrmals drücke, funktioniert es? Was mach ich falsch? Mit setTimeout hab ich es auch schon versucht aber er trägt es jedesmal nur einmal ein.

    Danke schonmal.

    lg
     
  2. 4. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    Code:
    function test(b){
     aktiv = setInterval(function() { pr(b); },3000);
    }
     
  3. 4. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    Ja dank dir, funktioniert.

    Ich versuche schon die ganze Zeit, in die test.php eine weiterleitung einzubauen.. weder mit javascript (also, document.location.href) noch mit php (header(..)) funtioniert es. Kann das überhaupt funktionieren? Das Script wird ja im hintergrund ausgeführt und nen echo funktioniert auch nicht.

    lg
     
  4. 5. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    such dir ein datenformat aus (json/xml) und interpretier das dann in nem onload-handler deines xhr.

    z.b.:

    XML
    Code:
    // xml
    var xhr = new XMLHttpRequest;
    xhr.open('GET', 'test-xml.php', true);
    xhr.addEventListener('load', feddich, false);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.send(null);
    
    function feddich() {
     var res = this.responseXML,
     elm = res.querySelector('root > res');
     
     if (elm.getAttribute('action') === 'redirect')
     window.location.href = elem.getAttribute('href');
    }
    PHP:
    header ( 'Content-type: text/xml; Charset=UTF-8' );

    print <<<END_XML
    <root>
      <res action="redirect" href="dahin.html" />
    </root>
    END_XML;
    JSON
    Code:
    var xhr = new XMLHttpRequest;
    xhr.open('GET', 'test-json.php', true);
    xhr.addEventListener('load', feddich, false);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.setRequestHeader('Accept', 'application/json');
    
    try {
     // das ist neu in XHR2, damit kannst du 
     // die json-rückgabe des server direkt parsen lassen
     xhr.responseType = 'json';
    } catch (e) {
     // dann eben nicht
    }
    
    xhr.send(null);
    
    function feddich() {
     var res = this.response;
     
     if (!res || typeof res === "string")
     res = JSON.parse(this.responseText);
     
     if (res.action === 'redirect')
     window.location.href = res.href;
    }
    PHP:
    header ( 'Content-type: application/json; Charset=UTF-8' );
    print 
    json_encode ([  'action'  =>  'redirect' 'href'  =>  'dahin.html'  ]);
     
  5. 5. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    Nochmal danke ^^

    Hab da jetzt auch mal einwenig rumgetestet, aber irgendwie will es nicht hinhauen. Großartig verändert hab ich auch nichts. Schau nochmal bitte drüber, vllt hab ich es auch falsch verstanden.

    Code:
     
     function starten(benutzerid){
     // xml
     url='test-xml.php?id='+benutzerid;
     var xhr = new XMLHttpRequest;
     xhr.open('GET', url, true);
     xhr.addEventListener('load', feddich, false);
     xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
     xhr.send(null);
     }
    
     function feddich() {
     var res = this.responseXML,
     elm = res.querySelector('root > res');
     
     if (elm.getAttribute('action') === 'redirect')
     window.location.href = elem.getAttribute('href');
     }
    
    HTML:
    <a href="javascript:starten(123)">klick</a>
    
    test-xml.php:
    PHP:
       include_once( "./includes/top.php" );
      
    //test-insert
      
    $benutzer  = new  Benutzer ( $_GET [ 'id' ]);
      
    $benutzer -> insertTestId ();
     
      [...] 

      
    header ( 'Content-type: text/xml; Charset=UTF-8' );
      
      print <<<END_XML
      <root>
        <res action="redirect" href="index.php" />
      </root>
      END_XML;
     
  6. 5. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    window.location.href = elem.getAttribute('href');
    window.location.href = elm.getAttribute('href');

    wenn du solche fehler aber nicht von selbst findest, hast du ganz andere probleme
    ich glaub ich schreib mal nen blog-eintrag übers debuggen im browser.

    ps: das leerzeichen hinter END_XML; muss auch weg, sonst schmeißt das script nen syntax-error.
     
  7. 5. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    Ach ich weiss auch nicht was los ist, passiert mir häufiger in letzter Zeit so flüchtigkeitsfehler. Auch auf der Arbeit.. Hab glaub schon zu viele arten von variablen namen genommen, dass sie mit der Zeit alle gleich aussehen beim schnell drüber schauen ;D

    Nungut, dank dir.
    lg
     
  8. 5. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    du darfst deine arbeit in diesem bereich nicht als "arbeit" ansehen, denn dann hast du bereits verloren und du wirst zu nem winzigen zahnrädchen im system dieser ausbeutergesellschaft

    gerade der bereich <web> ist doch so spannend und entwickelt sich grad zu nem riesen spielplatz für entwickler, tüftler und macher.

    jeden tag was neues entdecken und (zumindest ist es bei mir so) stunden lang an ner sache rumhacken (auch außerhalb der arbeitszeit) und spaß dabei haben, weil man neue sachen lernt

    flüchtigkeitsfehler passieren nur wenn man nicht richtig bei der sache ist.

    lass den kopf nicht hängen

    SmashingMagazine Meetup#3 Christian Heilmann Talk - Style and Distance - you dont need to burn the museum to create a new world on Vimeo
    slides: Presentation: Style and Distance - Moving ahead in web development as a community
     
  9. 7. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    Hmmm.. ich bekomme es nicht hin, dass er die Weiterleitung auch im IE durchführt. Ich glaube es liegt am responseXML.

    Der IE schmeisst folgenden Fehler:
    "Das Objekt unterstützt diese Eigenschaft oder Methode nicht.

    Weiss einer, woran es liegen könnte? Meine versuche waren bislang erfolglos

    lg
     
  10. 8. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    also mein script geht erst ab IE8, da ich querySelector verwende. du kannst das aber selber mit getElementsByTagName nachbauen.

    oder kannst/willst du das nicht?
     
  11. 8. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    Doch doch... Klar will ich das. Bin nur bei Javascript noch nicht so lange dabei, dass mir so schnell Alternativen einfallen.. Aber habs durch deine Anregung mal versucht.. Muss somit sagen, ich kanns nicht ^^


    //ohje, ich kanns doch

    Code:
    var elm = res.getElementsByTagName('res').item(0);
    
    Aber im IE funktioniert es trotzdem noch nicht. ;/

    lg
     
  12. 8. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    addEventListener geht im ie auch nicht fällt mir grad ein.

    machst mit nem onreadystatechange

    Code:
    function starten(benutzerid){
     // xml
     var url='test-xml.php?id='+benutzerid;
     var xhr = new XMLHttpRequest;
     xhr.open('GET', url, true);
     xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
     xhr.onreadystatechange = function() { feddich.call(xhr); };
     xhr.send(null);
    }
    
    function feddich() {
     if (this.readyState !== 4) 
     return;
     
     var res = this.responseXML,
     elm = res.getElementsByTagName('res')[0];
     
     if (elm.getAttribute('action') === 'redirect')
     window.location.href = elm.getAttribute('href');
    }
     
  13. 8. März 2012
    AW: XMLHttpRequest() mehrfach aufruf

    hmm, ne funktioniert auch nicht. Also im FF schon, aber im IE nicht:

    Code:
     function pr(benutzerid){ 
     url='test-xml.php?id='+benutzerid;
     http_request = new XMLHttpRequest();
     http_request.open('GET', url, true); 
     //http_request.addEventListener('load', feddich, false);
     http_request.onreadystatechange = feddich;
     http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
     http_request.send(null); 
     }
    
     function feddich() {
     var res = this.responseXML;
     var elm = res.getElementsByTagName('res').item(0);
     
     if (elm.getAttribute('action') === 'redirect')
     window.location.href = elm.getAttribute('href');
     } 
    
    Der Browser schmeisst noch folgenden Fehler:
    "Das Object unterstützt diese Eigenschaft oder Methode nicht" Zeile 13 Zeichen 7.

    //e: alles klar, test ich mal
    //e2: Danke, funktioniert
     
  14. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.