On Tue, Sep 30, 2008 at 6:06 PM, Angel Mauricio Pino Gonzalez [email protected] wrote:
Ya antes pregunte por lo de un Progress Bar, ya se que con
Ajax.PeriodicalUpdater, puedo solucionar el tema por el lado del
cliente.
Yo asumo que se puede mandar mas de una respuesta desde el servidor
para ir indicando el nivel de avance del proceso. ¿ Es seto correcto?
No, no podés mandar más de una respuesta a cada request HTTP.
Por cada pregunta del cliente a “cuanto del archivo ya subió” vas a
tener una respuesta del server que diga “xx %”.
Despues dependiendo de tu http server, aplicación y demás es como te
enteras que % del archivo está subido. No es auto-mágico. Yo uso [1]
que es un módulo de apache que hace el tracking y permite consultarlo
por AJAX.
No me sirve estar llamando via PeriodicalUpdater, ya que no necesito
iniciar un proceso muchas veces, si no que, saber el estado de un
proceso que ya esta corriendo.
De modo que lo que parece correcto usar es directamente en un cliclo
llamadas a Ajax.Request. Y agregar a mi proceso respuetas via xml para
indicar el estado de avance del proceso. La pregunta entonces es ¿
Puedo en un proceso regresar mas de un resultado (html, js o xml), a
medida que avanzo en el proceso?.
On Tue, Sep 30, 2008 at 8:05 PM, Angel Mauricio Pino Gonzalez [email protected] wrote:
¿Funciona algo de ese tipo?
No creo. En general si queres la barrita linda, tenés que pagar el
precio de las requests secundarias para hacer el tracking del estado
de la
operación.
On Tue, Sep 30, 2008 at 11:06 PM, Angel Mauricio Pino Gonzalez [email protected] wrote:
Ya antes pregunte por lo de un Progress Bar, ya se que con
Ajax.PeriodicalUpdater, puedo solucionar el tema por el lado del
cliente.
Yo asumo que se puede mandar mas de una respuesta desde el servidor
para ir indicando el nivel de avance del proceso. ¿ Es seto correcto?
No, sólo se puede enviar una respuesta a cada petición. Pero esto me
recuerda que en ASP sí que se puede hacer esto, con Response.buffer y
Response.flush:
Si ellos que son más feos pueden, ¿por qué nosotros no?
On Wed, Oct 1, 2008 at 1:05 AM, Angel Mauricio Pino Gonzalez [email protected] wrote:
¿Funciona algo de ese tipo?
No, para hacer eso creo que necesitarás usar una tecnica llamada
Server Push[1], que para rails existe la siguiente[2] solución ( que
no he probado ).
Cuidado no confundir la teorÃa de server push (Lanzar una petición ajax
y
dejarla al espera creando un pseudo-push), con que en una petición
puedas
enviar cachos de archivos al cliente.
On Wed, Oct 1, 2008 at 1:05 AM, Angel Mauricio Pino Gonzalez [email protected] wrote:
¿Funciona algo de ese tipo?
No, para hacer eso creo que necesitarás usar una tecnica llamada
Server Push[1], que para rails existe la siguiente[2] solución ( que
no he probado ).
puedes utilizar el upload_progress_module de nginx
esto trackea las subidas de los archivos y consulta via ajax una ruta
especificada (/uploads ) en el conf de tu nginx, asi esto devuelve un
json
con el estado de la subida del archivo
aqui hay un ejemplo de como implementarlo con la barrita
Yo utilice un plugin para mongrel http://mongrel.rubyforge.org/wiki/UploadProgress que permite trackear el
avance de subida del archivo. Aunque ultimamente estoy teniendo algunos
problemas aleatorios (o que aun no le encontre un patron) que hace que
suban
al 99% y luego queden ahi, sin encontrar ningun error en ningun log…
Creo que voy a migrar a alguna solución en flash de las que andan dando
vueltas por ahi…
Saludos