una todos soy sintomas saltarse remove que problemas persona llama google gastricos eliminar digestivos demostrar demas cualidad como chrome causas cae bien ayudar alos javascript timer xmlhttprequest

javascript - todos - Llamar a XMLHttpRequest continuamente



problemas gastricos sintomas (1)

En este momento estoy llamando a una función en un setIntervaluación.

Esta función hace un XMLHttpRequest a mi servidor para obtener información de actualización. Si hay una actualización disponible, actualizo una imagen (usando el elemento canvas).

¿Es esta la mejor manera de hacer este tipo de cosas?

Mi código:

Código de llamada:

function StartFeedUp() { if (tmrStartFeedUp) window.clearInterval(tmrStartFeedUp); tmrStartFeedUp = setInterval(GetNextImage, 330); }

Mi función llamada:

var isProcess = false; function GetNextImage() { try { if (!isProcess) { isProcess = true; var urlTS = ''/Cloud/isNewFrames.ashx?alias='' + alias + ''&version='' + version + ''&guidlogon='' + guidlogon; var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", urlTS, true); xmlhttp.timeout = 200; xmlhttp.send(); var nextts = xmlhttp.responseText; } isProcess = false; } catch (err) { isProcess = false; document.getElementById("divMode2").innerHTML = err; } }


Además de repetir la llamada XHR, puede usar los Web Sockets de HTML5 que le permiten mantener una conexión con el servidor, por lo que el servidor enviaría datos cuando sea necesario. Los sockets web son relativamente nuevos y, por lo tanto, no son compatibles con navegadores antiguos.

Su XHR es asíncrono, por lo que debería estar escuchando el evento onreadystatechange lugar de esperar siempre que la respuesta esté disponible directamente después de la llamada a send() :

xmlhttp.open("GET", urlTS, true); xmlhttp.timeout = 200; xmlhttp.onreadystatechange = function(){ if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ console.log("received " + xmlhttp.responseText); } } xmlhttp.send();