Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > de.comp.lang.javascript > #4795

Re: Gluecksrad

From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups de.comp.lang.javascript
Subject Re: Gluecksrad
Date 2016-11-15 19:27 +0100
Organization PointedEars Software (PES)
Message-ID <3307965.kQq0lBPeGt@PointedEars.de> (permalink)
References <o04r2k$i78$1@news.albasani.net> <o0fcmj$hji$1@news.albasani.net>

Show all headers | View raw


Klaus Ketelaer wrote:

> ich sende aus meinem Glücksrad heraus Daten an ein PHP-Script,
> das die Daten dann speichert.
> 
>    var request = new XMLHttpRequest();
>    var myUrl = wheel.url + '/save.php'
>                          + '?ip=' + wheel.ip
>                          + '&clicks=1'
>                          + '&type=' + wheel.seg_type;

Sicherer wäre es, die Werte im query-part mit encodeURIComponent() zu 
prozent-codieren.

Was ist “wheel.ip”?

>    request.open('get', myUrl, false);

Das solltest Du nicht tun.  Wenn das dritte Argument von 
XMLHTTPRequest::open() “false” ist, dann wird der Request synchron 
behandelt, das heisst das Script blockiert den Browser oder zumindest das 
Browser-Fenster/-Tab solange, bis der Server antwortet oder ein Timeout 
eintritt.

Diese Form des Requests ist nicht nur benutzerunfreundlich, sie wird auch 
gemäss Browserherstellern zukünftig nicht mehr unterstützt werden.

Richtig ist stattdessen:

  request.open("GET", myUrl, true);

Normalerweise will man ausserdem wissen, ob der Request erfolgreich war und 
was der Server geantwortet hat, würde deshalb nach diesem Aufruf einen 
Event-Listener registrieren.  Entweder

  request.onload = function (event) {
    // Zugriff auf event.target.status und event.target.response*
  };

  request.onerror = function (event) {
    // Zugriff auf event.target.status und event.target.response*
  };

oder, für den Fall, dass das noch nicht unterstützt wird,

  request.onreadystatechange = function () {
    if (request.readyState == 4) {
      if (/\b(?:2\d\d|1023|0)\b/.test(request.status))
      {
        /* Zugriff auf request.response*
      }
      else
      {
        /* Zugriff auf request.response*
      }
    }
  };

<https://xhr.spec.whatwg.org/>

Oder man benutzt eine Bibliothek wie mein JSX:http.js, die dies kapselt.

>    request.send();

Formal richtig ist:

  request.send(null);
 
Das erste (und einzige) Argument von XHR::send() gibt an, welche Daten im 
“message body” an den Server gesendet werden sollen (das braucht man vor 
allem für POST-Requests).  Nur wenn dieses “null” ist, bleibt der “message 
body” per Spezifikation und Implementierung leer.

>    Nun muss ich die aktualisierte Daten wieder zurücklesen.
> 
> Irgendwie kapiere ich den umgekehrten Weg nicht.

Siehe oben.
 
> Damit es auch der Thomas versteht(SCNR):
> Ich muss Daten aus einem PHP Script heraus an eine laufende
> JavaScript Anwendung schicken.

  <?= $daten ?>
 
> Das Script kann nicht neu gestartet werden! Die Seite kann
> nicht refresht(F5) werden!

Du meinst wohl “_darf_ nicht”.
 
> Wer hat denn mal ein verständliches Beispiel für mich.

Schade, Du hast – trotz Anleitung – immer noch nicht gelernt, wie man Fragen 
richtig stellt.

Dann bleibt Dir wohl nur Freund Google.

-- 
PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | ES Matrix: <http://PointedEars.de/es-matrix>
Please do not cc me. / Bitte keine Kopien per E-Mail.

Back to de.comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-11 17:19 +0100
  Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-11 19:52 +0100
    Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-12 12:24 +0100
      Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-13 20:49 +0100
  Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-14 01:52 +0100
    Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-14 02:25 +0100
      Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-14 10:19 +0100
        Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-14 10:57 +0100
          Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-15 08:38 +0100
        Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-15 00:41 +0100
  Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-15 17:21 +0100
    Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-15 19:27 +0100
      Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-16 12:13 +0100
        Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-16 12:37 +0100
        Re: Gluecksrad "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-11-16 12:58 +0100
        Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-16 16:19 +0100
          Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-16 18:29 +0100
            Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-16 19:13 +0100
              Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-16 19:29 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-17 20:21 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-18 03:09 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-18 17:23 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-18 17:40 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-18 17:56 +0100
                Re: Gluecksrad "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-11-18 18:19 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-18 19:14 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-18 20:06 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-19 10:04 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-18 19:06 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-18 20:16 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-19 10:22 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-18 21:45 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-19 10:38 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-19 10:56 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-19 11:48 +0100
          Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-22 21:19 +0100
            Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-22 22:13 +0100
              Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-23 01:08 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-23 01:21 +0100
                Re: Gluecksrad "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2016-11-23 22:47 +0100
            Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-23 10:06 +0100
              Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-23 10:18 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-23 12:16 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-24 21:28 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-24 22:45 +0100
                Re: Gluecksrad Arno Welzel <usenet@arnowelzel.de> - 2016-11-25 23:11 +0100
                Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-23 16:41 +0100
                Re: Gluecksrad Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-23 21:15 +0100
              Re: Gluecksrad Klaus Ketelaer <spam@spambouncer.de> - 2016-11-23 15:41 +0100
                Re: Gluecksrad "Christoph M. Becker" <cmbecker69@arcor.de> - 2016-11-23 16:21 +0100

csiph-web