es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

PHP / XMLHttpRequest POST HTML5 Worker Almacenar json de echo en variable.

Veo muchas preguntas sobre este tema. Pero parece que estoy haciendo algo mal. Así que perdónenme por preguntar (soy un poco novato). En mi archivo PHP, imprimo lo siguiente: echo json_encode([‘msg’=>$NewTotal]);

Utilizo un trabajador HTML5 para enviar datos a un archivo PHP en mi servidor y necesito que la respuesta sea enviada de vuelta al script principal para poder volver a enviarla y establecerla como el nuevo valor para la variable Totalaccounts en el bucle.

Script del trabajador:

onmessage = function(dbs) {
console.log(dbs.data);
var Totalaccounts = dbs.data;

var DBScriptLoop = setInterval(
(function () {
  DBStartWorking(); 
  //postMessage(Totalaccounts);  
}), 123000);
function DBStartWorking(){
for (var dw = 0; dw < Totalaccounts; dw++) {
    setTimeout(function() {
httpRequest = new XMLHttpRequest()
var dataresponse = httpRequest.responseText;
var NewCount = dataresponse.msg;
httpRequest.open('POST', 'DostuffV1.php')
httpRequest.send(Totalaccounts) 
postMessage(NewCount);
console.log(NewCount);
    }, 1200 * dw);
}
} // End script loop


};

Script principal:

var DBScriptWorker;

function startDBScriptWorker() {
if(typeof(Worker) !== “undefined”) {
if(typeof(DBScriptWorker) == “undefined”) {

 DBScriptWorker = new Worker('DBScriptWorker.js');
  var php_va = "<?php echo $AccToRank; ?>";
  DBScriptWorker.postMessage(php_va);

}
DBScriptWorker.onmessage = function(event) {
  document.getElementById("result").innerHTML = event.data;
  DBScriptWorker.postMessage(event.data);
};

} else {
document.getElementById(“result”).innerHTML = “Lo siento, tu navegador no soporta Web Workers…”;
}
}
function stopDBScriptWorker() {
DBScriptWorker.terminate();
DBScriptWorker = undefined;
}

En mi pestaña de red veo que la respuesta es esta: {“msg”:29}

Mi variable no está establecida, aparece como indefinida. ¿Qué estoy haciendo mal? Llevo horas buscando y probando…

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando establecer la variable Totalaccounts en el script principal al valor de msg en la respuesta del servidor. Para hacer esto, necesitas analizar la respuesta del servidor y establecer la variable Totalaccounts al valor de msg.

    En la función DBStartWorking(), puedes agregar el siguiente código después de la línea httpRequest.send(Totalaccounts):

    javascript
    httpRequest.onreadystatechange = function() {
    if (httpRequest.readyState === XMLHttpRequest.DONE) {
    if (httpRequest.status === 200) {
    var response = JSON.parse(httpRequest.responseText);
    Totalaccounts = response.msg;
    }
    }
    };

    Esto analizará la respuesta del servidor y establecerá la variable Totalaccounts al valor de msg.

Comments are closed.