Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/05/2009, 10:09
matak
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: detener un script AJAX con setTimeout ejecutandose

Buenas mrgubu

Prueba esto,

Código javascript:
Ver original
  1. var xmlHttp;
  2.  
  3. function votar(str,valor)
  4. {
  5. if(document.getElementById('yahavotado')){
  6.     alert('debe esperar unos segundos');
  7.     return false;
  8. }
  9. xmlHttp=GetXmlHttpObject();
  10. if (xmlHttp==null)
  11.   {
  12.   alert ("Browser does not support HTTP Request");
  13.   return;
  14.   }
  15. var url="/votar.php";
  16. url=url+"?idpal="+str;
  17. url=url+"&vot="+valor;
  18. xmlHttp.onreadystatechange=function(){
  19. var respuesta;
  20. var respuesta_yahavotado;
  21. if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
  22.     respuesta=xmlHttp.responseText;
  23.     obj=document.getElementById("getDataVotacion-"+str);
  24.     //Aquí analizo la respuesta, que puede venir con un c0 o un c1 en la cadena. SI viene con un c0 es que ya había votado anteriomente. Si viene con un c1 es que no ha votado pero se ha contabilizado ya su voto
  25.     if(respuesta.substr(12,2)=='c0'){
  26.         //Si ya ha votado, entonces nuestro la leyenda 'Ya ha votado' durante 3 segundos y después muestro otra vez los votos
  27.         respuesta_yahavotado='<div class="yahavotado" id="yahavotado"><em>Ya ha votado</em></div>';
  28.         obj.innerHTML = respuesta_yahavotado;
  29.         setTimeout("obj.innerHTML = "+respuesta+"", 3000);
  30.     }else{
  31.         //Si no ha votado, muestro los votos con el nuevo voto ya sumado
  32.         obj.innerHTML = respuesta;
  33.     }
  34. }
  35. }
  36. xmlHttp.open("GET",url,true);
  37. xmlHttp.send(null);
  38. }
  39.  
  40.  
  41. function GetXmlHttpObject(){
  42.     var xmlHttp=null;
  43.     try  {
  44.       // Firefox, Opera 8.0+, Safari
  45.       xmlHttp=new XMLHttpRequest();
  46.       }
  47.         catch (e) {
  48.           //Internet Explorer
  49.           try    {
  50.             xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  51.             }
  52.           catch (e) {
  53.             xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  54.             }
  55.           }
  56.     return xmlHttp;
  57. }

Ya dirás,saludos
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!