Código PHP:
SELECT * FROM tareas WHERE terminada=0 AND usuario='pepe';
¿Cual sería la manera mas optima sin sobrecargar mucho el navegador y demas?
He pensado hacerlo con un setTimeOut() de javascript pero no se no se...
Saludos!
| |||
Ejecutar consulta cada X tiempo Explico brevemente, desde todas las paginas de mi sitio web hago una llamada a un popup que muestra el resultado de una consulta. La cosa es que ese popup lo ideal es que solo me lo muestre cuando la consulta devuelva resultado por ejemplo: Código PHP: ¿Cual sería la manera mas optima sin sobrecargar mucho el navegador y demas? He pensado hacerlo con un setTimeOut() de javascript pero no se no se... Saludos! |
| |||
Re: Ejecutar consulta cada X tiempo Me suena que he respondido a algo parecido esta mañana, pero creo que era en el foro de JavaScript. Si lo quieres hacer con PHP, sólo podrás controlar que se ejecute cuando se recargue la página. Para que se ejecute cada x tiempo, independientemente de si el usuario recarga la página o no, sería con AJAX. Si no quieres usar AJAX (que sería lo más correcto y bonito), con php puedes hacer que se ejecute en cada página, no creo que entonces tenga mucho sentido lo de los cinco minutos, no obstante, si quieres hacerlo cada x tiempo, puedes guardar la hora de la última consulta. Pero eso te obligaría ha realizar una consulta para ver ese dato, por lo que, no sólo no ahorrarías querys, sino que se saturaría aún más. En resumen, mi opinión personal es que lo hagas con AJAX. Y si lo haces con php, que se ejecute siempre al cargar una página. |
| |||
Re: Ejecutar consulta cada X tiempo Muchas gracias por responder Keysher. La verdad ke me gusta mucho la idea de probar en AJAX pero si te soy sincero, no tengo ni pajolera idea de como va. ¿Me recomiendas algo para leer y poder hacerme una idea de como conseguir lo que busco? Muchas gracias, saludos! |
| ||||
Re: Ejecutar consulta cada X tiempo Supongo que la respuesta es (como casi siempre) depende. Si este es un proceso que sólo quieres ejecutar mientras que un usuario tenga abierta una página, entonces lo mejor podría ser un Ajax.... en cualquier otro caso un Cron |
| |||
Re: Ejecutar consulta cada X tiempo Gracias vevni y pragone por vuestras ideas. La verdad es que estoy empezando a plantearlo con Ajax ya ke en realidad solo kiero ke se ejecute cuando el usuario este navegando por el sitio web por lo tanto un CRON lo veo algo complejo para lo que la situacion requiere. Finalmente como ya he dicho me he decantando por Ajax y espero conseguirlo, aun asi aprovecho para hacer una ultima pregunta. ¿hay alguna manera de detectar si se ha insertado o cambiado algun dato de una tabla MySQL? Pregunto esto porke seria perfecto el ke pudiera ejecutar la consulta solamente cuando se haya insertado un nuevo registro en la tabla. Gracias de nuevo amigos. |
| |||
Re: Ejecutar consulta cada X tiempo Tal y como está planteado no creo que un cron job sea lo más útil. Hay que tener en cuenta que lo que quiere es que se le avise al usuario que está navegando, ¿Qué sentido tiene un cron que se ejecute cada cinco minutos? Lo ideal es que sólo se ejecute cuando el usuario esté logueado en el sistema, y será una consulta sólo para ese usuario en concreto. Vamos, que no le veo sentido a un cron job. Serían hacer cientos de consultas inutiles, cuando sólo hay que hacerlas en el momento que el usuario esté logueado, y en caso de devolver algún resultado, mostrarle un aviso a ESE usuario mientras está navegando. Sigo pensando en las dos opciones: - PHP cada vez que se recarga la página (no es en tiempo real, aunque se ahorran consultas a la base de datos) - AJAX, más elegante, práctico, en tiempo real, aunque hay que hacer muchas más consultas. Con respecto a la pregunta, no sé si habrá alguna manera de "monitorizar" cambios en la BDD pero de haberlo supongo que sería consultando a la propia BDD, por lo que tampoco ahorrarías mucho. De todos modos es interesante saber si existe eso. |