Ajax Rückgabe in PHP Variable speichern

kramoo

Mitglied
Ist es möglich die Rückgabe einer Ajaxanfrage in einer PHP Variable weiter zu verarbeiten.
Wie im Code unten sollte die PHP Variable "$rueckgabe" den Wert der AJAX Rückgabe "var rueckgabe" erhalten.

Javascript:
<script type="text/javascript">
//alert ('test');
function ajaxFunction() {
 var xmlHttp=null;
 try {
   // Firefox, Internet Explorer 7. Opera 8.0+, Safari
   xmlHttp = new XMLHttpRequest();
 } catch (e) {
   // Internet Explorer 6.
   try {
     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
     try {
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (e) {
       alert("Your browser does not support AJAX!");
       return false;
     }
   }
 }
  xmlHttp.onreadystatechange=function() {
   if(xmlHttp.readyState==4) {
  		var rueckgabe = (xmlHttp.responseText);
   }
 }
 xmlHttp.open("GET", "test.php", true);
 xmlHttp.send(null);
}
</script>
<?php
echo "<script type=\"text/javascript\">ajaxFunction();</script>"; 
$rueckgabe = javascriptvariable -> rueckgabe = (xmlHttp.responseText);
?>
 
Zuletzt bearbeitet von einem Moderator:
Hi,

warum hohlst du es dir nicht direkt in PHP?
ist einfacher und sicherer...
PHP:
$rueckgabe = json_decode(file_get_contents('test.php'));
 
Hi,

warum hohlst du es dir nicht direkt in PHP?
ist einfacher und sicherer...
PHP:
$rueckgabe = json_decode(file_get_contents('test.php'));

Weil ich so ne Art Multithread simulieren möchte. Also mehrere Abfragen gleichzeitig starten und schon mit den Rückgaben weiterarbeiten.
z.B. hole ich mit der test.php den Content einer Seite und möchte diesen weiter verarbeiten. Da ich aber eine ganze Domain crawle und daher mehrere 1000 Seiten mit der test.php auslesen muss sollen eben mehrere gleichzeitig eingelesen werden können. Sonst läuft mein crawler Tage.
 
Hi,

selbst wenn viele Leute deine Seite aufrufen und so ihr PC für dich dich Javascript-Ajax-Requests macht, muss dein Server sie letztendlich doch wieder empfangen. Wo wäre da die Zeitersparnis?

Zu Multithreading:
Wenn dein Rechner z.B. 2 echte Kerne hat könnte es damit doch eigentlich höchstens doppelt so schnell werden, oder?
Ist das nicht hauptsächlich sinnvoll wenn Dinge aus logischen Gründen unbedingt gleichzeitig geschehen sollen? (z. B. GUI eines Programms soll weiterhin reagieren können, während im Hintergrund Berechnung läuft)
Unterstützt PHP das überhaupt richtig?

Ich an deiner stelle würde z. B. C lernen, sofern du es noch nicht kannst. Das unterstützt wenigstens richtige Threads und ist sowieso schneller als PHP.
Ansonsten: kennst du hiphop-php?

Hoffe ich habe dich nicht missverstanden,
javaDeveloper2011
 
Hi,

selbst wenn viele Leute deine Seite aufrufen und so ihr PC für dich dich Javascript-Ajax-Requests macht, muss dein Server sie letztendlich doch wieder empfangen. Wo wäre da die Zeitersparnis?

Zu Multithreading:
Wenn dein Rechner z.B. 2 echte Kerne hat könnte es damit doch eigentlich höchstens doppelt so schnell werden, oder?
Ist das nicht hauptsächlich sinnvoll wenn Dinge aus logischen Gründen unbedingt gleichzeitig geschehen sollen? (z. B. GUI eines Programms soll weiterhin reagieren können, während im Hintergrund Berechnung läuft)
Unterstützt PHP das überhaupt richtig?

Ich an deiner stelle würde z. B. C lernen, sofern du es noch nicht kannst. Das unterstützt wenigstens richtige Threads und ist sowieso schneller als PHP.
Ansonsten: kennst du hiphop-php?

Hoffe ich habe dich nicht missverstanden,
javaDeveloper2011

Die seite wird nicht aufgerufen. Ist ein Cronejob. Also bringt es durchaus etwas.

PHP unterstützt kein echtes Multithreading. Aber das brauch ich auch nicht. Es ist nur wichtig dass das holen des Content gleichzeitig geschehen kann. Und das lässt sich mit PHP machen. In meinem fall eben mit AJAX.

Es muss eben gleichzeitig sein. 1 Seite einlesen dauert je nach Antwortzeit der seite mehrere Sekunden. Bei 1000ten von Seiten kann es also Tage dauern. Deshalb muss das einlesen eben Parallel erfolgen.

C möchte ich nicht lernen und brauch ich auch nicht. Mag sein das es schneller ist.
 
Wie wäre es damit:
Javascript:
var params = "text="+xmlHttp.responseText;
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.open("POST", "andesScriptDassDatenInDBOderSoEintraegt.php", true);
xmlHttp.send(params);
...Wert ist dann innerhalb von "andesScriptDassDatenInDBOderSoEintraegt.php" als $_POST['text'] verfügbar.
 

Neue Beiträge

Zurück