Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/10/2012, 11:24
minombreesmm
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: incoherencia en medicion de tiempo php, a que se debera?

Cita:
Iniciado por ocp001a Ver Mensaje
Dos cosas: el problema puede estar en php, ya que es php el que agota su tiempo límite, pero no has puesto nada de php, es lo que te dice h2swider

Por otra parte, según veo, al hacer clic en el elemento "vermas" va a ejecutar 10 veces el llamado a Vermas("POST"); ¿es correcto? yo no lo creo, pero igualmente sin ver qué hace esa función, poco se puede hacer.
disculpa por que no lo crees? efectivamente me lanza los primeros 25 comentarios y a la segunda vuelta si es que no excede los 30 segundos me lanza los otros 25, no lo dudes


lo que pasa es que el archivo que carga los comentarios no creo que sea necesaria ya que solamente carga los comentarios. con un while en una consulta sql..
y dura mas o dura menos dependiendo las urls que tenga en cada comentario.
yo estoy cociente que dure eso.
de lo que me parece ilogico es que el javascript tome la peticiones como una sola en cuanto a la ejecucion del script.
por eso creo que no serviria de nada poner el mundo de codigo de php que tengo para las validaciones y retornos.


aqui esta el que ejecuta la consulta

Código PHP:
Ver original
  1. <? session_start();?><title>publicar comentario</title><?
  2. require("../configuracion.php");
  3.  
  4. if(isset($_SESSION['usuario'])){
  5.     $tiempo_total=0;
  6.     require("divcomentarios.php");
  7.         //$sql="select avatar,nombre,apellido,comentario,murocomentarios.id as id from murocomentarios,usuarios where murocomentarios.idusuario=usuarios.id order by murocomentarios.id desc limit ".$_POST['vars'].",1";
  8.              $sql="select avatar,nombre,apellido,comentario,murocomentarios.id as id from murocomentarios,usuarios where murocomentarios.idusuario=usuarios.id order by murocomentarios.id desc limit ".$_SESSION['vermas'].",25";
  9. //echo $sql;
  10.        $_SESSION['vermas']+=25;
  11.       // $_SESSION['vermas']=$_POST['vars'];
  12.         $consultaC = mysql_query($sql) or die ("No se pudieron mostrar los comentarios");
  13.         $tiempo_inicio = microtime(true);
  14.              While ($registroC=mysql_fetch_assoc($consultaC)){
  15.            
  16.        
  17.        
  18.    
  19.              ?>
  20.              <div id=contenedor>
  21.            
  22.                 <div class=columnados> 
  23.                     <div class=columnaavatar>
  24.                         <img id=avatar src="<? echo $registroC['avatar']; ?>"  >
  25.                    </div>
  26.                     <div id=nombre>
  27.                         <? echo $registroC['nombre']." ".$registroC['apellido']." id= ".$registroC["id"]." y vermas= ".$_SESSION['vermas'];?>
  28.                     </div>
  29.                    
  30.                     <div id=coment>
  31.                    
  32.                          <?
  33.                          $tiempo_fin= microtime(true);
  34.                       $tiempo_total+=round($tiempo_fin - $tiempo_inicio,2);
  35.                       echo comentarios($registroC['comentario'],"hora",450,250,true)." tiempo total= ".$tiempo_total;// esta es la funcion que convierte urls caritas, muestra miniaturas y todo eso.. el problema no es alli. por que eso solo regresa una cadena de texto.
  36.  
  37.                          ?>
  38.          
  39.                        
  40.                        
  41.                     </div>
  42.                 </div>
  43.                
  44.             </div>
  45.             <?
  46.            
  47.              }
  48.                    
  49.         mysql_free_result($consultaC);
  50.  
  51.          mysql_close();
  52.            
  53.        
  54. }
y asi llamo esa funcion mediante ajax
Código Javascript:
Ver original
  1. $('#vermas').click(function(){
  2.  
  3.  for(var i=0;i<=10;i++){
  4.  
  5.  Vermas("POST");
  6.  
  7.  alert(i);
  8.  }
  9.  
  10. });

no pongo el codigo ajax, pues por que alli no es el problema pues esas mismas funciones las uso para otras secciones y no tienen problema.

les contare tambien que cada segundo ejecuto la verificacion de un archivo txt mediante ajax, para saber si ah cambiado, y si cambio hago una consulta a la base de datos para extraer los cambios y mostrarlos.

Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\p5\iniciarchat.php on line 3

iniciarchat.php

Código PHP:
Ver original
  1. <?
  2. $_SESSION['chat']="chat";
  3. ?>

ese iniciar chat no esta involucrado para nada en el boton vermas
ese lo uso en un require pero del otro archivo que se ejecuta cada 1 segundo para verificar...
pero cuando quito esa ejecucion de 1 segundo entonces me manda este nuevo error
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\p5\Interaccion\Vermas.php on line 1
eh estado pensando

¿cuantas peticiones simultaneas soporta ajax?
y si no son simultaneas pone alguna en espera?
y si es asi, enonces la que se ejecuta cada segundo puede que este en espera y este detenida y es por eso que marca ese error?
lei por alli que habia limites de ejecuciones simultaneas...


esta es mi funcion javascript ajax Vermas("POST")

Código Javascript:
Ver original
  1. function Vermas(method,vars)
  2. {
  3. var respuesta;
  4. $('#cargandovermas').fadeIn();
  5. //$('#vermas').attr('disabled');
  6.      
  7.     var oAjaxV;
  8.         try{
  9.             oAjaxV=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
  10.         }
  11.         catch (e){
  12.             try{
  13.                 oAjaxV=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
  14.             }
  15.             catch (e){
  16.                 try{
  17.                     oAjaxV=new ActiveXObject("Microsoft.XMLHTTP");
  18.                 }
  19.                 catch (e){
  20.                     alert("Tu explorador no soporta AJAX.");
  21.                     return false;
  22.                 }
  23.             }
  24.         }
  25.  
  26. var URL="Interaccion/Vermas.php"
  27.  
  28.     if (method == "GET")
  29.       {
  30.         oAjaxV.open(method, URL+"?"+vars, true);
  31.         vars = "";
  32.         alert("get")
  33.       }
  34.       else
  35.       {
  36.    
  37.         oAjaxV.open(method, URL, true);
  38.          
  39.         //oAjax.setRequestHeader("Method", "POST "+URL+" HTTP/1.1");
  40.         oAjaxV.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  41.             //alert(method)
  42.       }
  43.       //oAjax.onreadystatechange = recibeDatos;
  44.  
  45.       oAjaxV.send("vars="+vars);
  46.      
  47.       oAjaxV.onreadystatechange=function(){
  48.             if(oAjaxV.readyState== 4 && oAjaxV.readyState != null){
  49.                 respuesta=oAjaxV.responseText;
  50.                 //alert(respuesta);
  51.                 $(respuesta).insertBefore('#contentevermas');
  52.                 alert("vermas");
  53.                 $('#cargandovermas').fadeOut();
  54.                 //$('#vermas').removeAttr('disabled');
  55.                 }
  56.             }
  57.      
  58. }


esta raro pero cuando ejecuto el ciclo del boton vermas
me imprime todos los alertas de la variable i, y al ultimo me va imprimiendo los alerts que estan dentro de la funcion Vermas("POST");
Se supone que debe ejecutar primero el del vermas luego el alert del ciclo luego de nuevo el vermas y luego el del ciclo, la verdad no comprendo, podrian orientarme?
de antemano gracias

Última edición por minombreesmm; 10/10/2012 a las 11:47