Foros del Web » Programando para Internet » PHP »

load() muchas páginas va lento

Estas en el tema de load() muchas páginas va lento en el foro de PHP en Foros del Web. Buenos días, en este ejemplo muestro como recoger un feed, pero me recoge todos los campos title, desc, link, date , como puedo hacerlo en ...
  #1 (permalink)  
Antiguo 21/02/2013, 03:28
(Desactivado)
 
Fecha de Ingreso: agosto-2011
Mensajes: 327
Antigüedad: 13 años, 3 meses
Puntos: 3
Coger solo el 1 registro de feeds

Buenos días, en este ejemplo muestro como recoger un feed, pero me recoge todos los campos title, desc, link, date ,
como puedo hacerlo en este for para que solo lo haga 1 vez ?

En teoría tengo más RSS y claro si el usuario tiene que esperar 6.7 segons ( función php lo he comprobado ) no es óptimo para el usuario

Código PHP:
Ver original
  1. foreach ($datos->getElementsByTagName('item') as $node ) {     
  2.                     $item = array (
  3.                         'title' => $node->getElementsByTagName('title')      ->item(0)->nodeValue,
  4.                         'desc'  => $node->getElementsByTagName('description')->item(0)->nodeValue,
  5.                         'link'  => $node->getElementsByTagName('link')       ->item(0)->nodeValue,
  6.                         'date'  => $node->getElementsByTagName('pubDate')    ->item(0)->nodeValue,
  7.                         );
  8.                     array_push($feed, $item);
  9.                 }

Encontré el problema es al cargar las paginas

$rss2->load('pagina rss .... )
0'4 segundo
$rss3->load('pagina rss .... )
0'5 segundos
$rss4->load('pagina rss .... )
...

... my pregunta ahora sería... como los cargo en 2 plano o aparte con el index y que solo cargue 1 vez ?

Última edición por drakgoku1; 21/02/2013 a las 04:45
  #2 (permalink)  
Antiguo 21/02/2013, 05:10
(Desactivado)
 
Fecha de Ingreso: agosto-2011
Mensajes: 327
Antigüedad: 13 años, 3 meses
Puntos: 3
load() muchas páginas va lento

En php la función load() hace la acción de cargar una página pero si tenemos muchas de ellas el rendimiento disminuye. (páginas externas )

Tengo :

$rss = new DOMDocument();
$rss ->load("página rss");

si tengo muchas la página tiene que cargarlas todas y disminuye la usabilidad, y no se guarda ya que tiene que cargar una y otra vez...

He intentado cargarlas en otra página pero tiene que cargar de nuevo...

tengo index.php --> puente.php (carga de los load()) redirection --> pagina.php

pero pagina.php no coge las variables de puente, no lo entiendo

Última edición por GatorV; 22/02/2013 a las 11:49
  #3 (permalink)  
Antiguo 21/02/2013, 05:31
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 8 meses
Puntos: 270
Respuesta: Coger solo el 1 registro de feeds

Si quisieras coger sólo el primero: al final del foreach, metes un break.
Ahora, si tu problema es que tarda mucho...Eso no te va a solucionar nada.Lo que tarda no es recorrer el array (a menos que el feed tenga miles de entradas).Lo que cuesta es conectarse a los feeds, descargarlo, etc.
Solución rápida: un cron , que ejecute el php de conexión, y genere un html con los feeds ya formateados, listos para simplemente hacer include().
  #4 (permalink)  
Antiguo 21/02/2013, 06:41
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: load() muchas páginas va lento

Cita:
Iniciado por drakgoku1 Ver Mensaje
B
tengo index.php --> puente.php (carga de los load()) redirection --> pagina.php

pero pagina.php no coge las variables de puente, no lo entiendo
claro por que logicamente en pagina.php no existen esas variables ahora si en vez de redirigir la incluyes seguramente si las coja o crea un array de session en puente.php con las variables que te servira en pagina.php
  #5 (permalink)  
Antiguo 22/02/2013, 02:27
(Desactivado)
 
Fecha de Ingreso: agosto-2011
Mensajes: 327
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: load() muchas páginas va lento

Cita:
Iniciado por webankenovi Ver Mensaje
claro por que logicamente en pagina.php no existen esas variables ahora si en vez de redirigir la incluyes seguramente si las coja o crea un array de session en puente.php con las variables que te servira en pagina.php
Si las incluyo, cargan la 1 vez, pero es como si las variables desaparecieran...

tengo un menú con 5 pestañas. el cargador de notícias la tengo a la 1 pestaña,
si hago click en la 2 pestaña y vuelvo a la 1 pestaña, me sale e: "Undefined variable: datos in C:\wamp\www\...."

$rss = new DOMDocument();
$rss ->load("página rss");

me interesaría guardar por un session o algo el $datos = array($rss,$..,..,..);

He hecho : $datos = array($rss,...) en la pagina.php y parece que funciona pero cuando hago click al menú (1-5) y vuelvo al 1 me dice :

Undefined variable: rss.....

Fatal error: Call to a member function getElementsByTagName() on a non-object in C:\wamp\ww

es como si el resultado de la variable no se guardara nunca


también he pensado en : "javascript tiempo de espera" pero como le hago de un php el tiempo de espera ?
<script> </script>

Última edición por drakgoku1; 22/02/2013 a las 05:48
  #6 (permalink)  
Antiguo 22/02/2013, 02:36
(Desactivado)
 
Fecha de Ingreso: agosto-2011
Mensajes: 327
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Coger solo el 1 registro de feeds

Cita:
Iniciado por dashtrash Ver Mensaje
Si quisieras coger sólo el primero: al final del foreach, metes un break.
Ahora, si tu problema es que tarda mucho...Eso no te va a solucionar nada.Lo que tarda no es recorrer el array (a menos que el feed tenga miles de entradas).Lo que cuesta es conectarse a los feeds, descargarlo, etc.
Solución rápida: un cron , que ejecute el php de conexión, y genere un html con los feeds ya formateados, listos para simplemente hacer include().

Me puedes explicar que es eso del cron ?

gracias
  #7 (permalink)  
Antiguo 22/02/2013, 10:40
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: load() muchas páginas va lento

Cita:
Iniciado por drakgoku1 Ver Mensaje

He hecho : $datos = array($rss,...) en la pagina.php y parece que funciona pero cuando hago click al menú (1-5) y vuelvo al 1 me dice :

Undefined variable: rss.....
En vez de una variable $datos usa $_SESSION['datos'] iniciando la session con session_start();

prueba y me comentas cualquier problema que tengas , de todas maneras falta informacion de codigo para poder ver un poco como podria implementarse.

Etiquetas: coger, feeds, lento, load, muchas, páginas, registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:51.