2017-03-24 4 views
-4

Hallo Leute, ich versuche, Echtzeit-Loop-Daten zu zeigen. mit AJAX möchte ich, wenn AJAX seine Real-Time-Nummer Update von Action-Seite Schleife ausführen.Get Realtime-Daten mit Ajax

$.ajax({ 
      url: "number.php", 
      type: "POST", 
      data: { 
       name: name 
      }, 
      cache: false, 
      success: function() { 
      /// some code to get result 
      } 

und Schleife Seite number.php

<?php 
$id =$_POST['id']; 
while(true) // no matter 
    { 
echo '<script> 
     int i = 0; 
     int ii += i; 
     print(i); // i want to shoe this value 
     i++; 
     </script>' 
} 
+4

Ein neuerer Ansatz ist die Verwendung von Sockets, siehe https://socket.io/ –

+2

Sie möchten wahrscheinlich stattdessen [WebSockets] (https://en.wikipedia.org/wiki/WebSocket) versuchen. AJAX ist nicht für den Datenaustausch ausgelegt, den Sie erreichen möchten. –

+0

Sie posten 'name' und rufen' $ _POST ['id'] '? Die Frage ist sehr unklar, was Sie versuchen zu tun. Ich verstehe nicht, warum Sie überhaupt PHP einbeziehen sollten, wenn Sie sich Ihre Beispiele anschauen. –

Antwort

0

Was Sie versuchen, mithilfe von Web-Sockets oder http-long-Abfrage zu tun

I erreicht werden würde vorschlagen, dass Sie Websockets verwenden, mit Ratchet, Ratsche ist eine lose gekoppelte PHP-Bibliothek, die Entwicklern Werkzeuge zur Verfügung stellt, um bidirektionale Anwendungen in Echtzeit zwischen Clients und Servern über Web-Sockets zu erstellen.

Die Verwendung von Ajax ist irgendwie keine gute Idee, weil Sie nach jedem X Sekunden eine Anfrage an den Server senden müssen, um Daten zu holen, auch wenn es keine Änderungen im Server gibt. Das ist eher so, als ob Sie DDos Ihren eigenen Server angreifen würden, ohne das zu wissen.

Aber wenn Sie auf Ajax beharren würden Sie eine Funktion ausführen, die alle x Sekunden eine Anfrage an das PHP-Skript senden wird, ist hier, wie Sie dass mit Ajax tun würde.

$('document').ready(function() { 
setInterval(function() {getRealData()}, 1000);//request every x seconds 

}); 

function getRealData() { 
$.ajax({ 
     url: "number.php", 
     type: "POST", 
     data: { 
      name: name 
     }, 
     cache: false, 
     success: function() { 
      /// some code to get result 
     } 
    } 
} 

NB: Wie ich oben besser gesagt haben, einen Blick in WebSockets haben.