Menu

Javascript?

Help
Anonymous
2010-04-30
2013-04-16
  • Anonymous

    Anonymous - 2010-04-30

    Hola!

    la verdad es que le voy dedicando ratillos por amor al arte, porque tamos liados con otras cosas, pero bueno, sigo haciendo alguna de mis pruebas…

    te quería preguntar una cosa que me está pasando, a ver cómo podría tratarlo. Me funciona bastante bien, pero a veces, después de un tiempo, me deja de funcionar algún botón o todos, a los que tengo puestos listeners…

    He pensado que podría ser un error de javascript, ya que no veo ninguna traza de error en el java, pero no sé cómo encontrarlo o debugearlo… cómo lo podría mirar?

    La única manera después es refrecar la página, pero entonces pierdo la "historia" de lo que estaba haciendo, y no quería tener que refrescar. Has probado el itsnat durante mucho tiempo sin recargar la página?

    Muchas gracias
    JORGE

     
  • Jose M. Arranz Santamaria

    jorgev: pero a veces, después de un tiempo, me deja de funcionar algún botón o todos, a los que tengo puestos listeners…

    Puede ser que simplemente la sesión haya expirado, por defecto se recarga la página automáticamente cuando se envía un evento al documento expirado aunque este comportamiento puede cambiarse con un event listener global detectando si el documento devuelto es nulo.

    Si estás en Comet es posible que el navegador o el servidor haya hecho un timeout de la conexión, eso se puede arreglar con un thread en el servidor que cada cierto tiempo llame a notifyClient para que la conexión permanezca "caliente". Tienes que tener en cuenta que esto puede dar lugar a que la sesión Comet nunca acabe (siempre puedes poner límites).

    Echa un vistazo también a CometNotifier.get/setExpirationDelay por defecto es 1 hora aunque yo creo que no es tu caso porque no creo que la expiración de la sesión la tengas a más de 1 hora (lo normal es que la sesión expire en torno a 30 minutos suele ser lo típico).

    ¿Usas FireBug de nuevo con normalidad?

     
  • Anonymous

    Anonymous - 2010-04-30

    Gracias!

    a ver si pruebo lo que me has dicho, puede que fuera eso.. yo lo había asociado más bien a que quizás hubiera habido un error de javascript y no siguiera ejecutando….

    lo del fiebug, sí que lo uso, pero no he debugeado mucho, lo tenía casi desactivado y sólo lo utilizaba para mirar el html… cuando lo pruebe te lo digo.

    Gracias!

     
  • Jose M. Arranz Santamaria

    Se me olvidaba, en MSIE 6 y 7 (creo que el 8 ya no) sólo hay dos conexiones simultáneas por navegador, una se quedará bloqueada en el hilo Comet, la otra está libre y admitiría requests, pero si abres otra ventana sea cual sea la página bloquearás  el navegador. Los demás navegadores tienen un número de conexiones superior.

    De todas formas no creo que este sea tu problema.

     
  • Jose M. Arranz Santamaria

    Siguiendo con el asunto MSIE y las conexiones, no deberías tener iframes y a la vez usar Comet pues cualquier carga que se haga desde el iframe es como si hubieras abierto otra ventana, puedes saturar las conexiones y se cuelga (la tercera conexión espera a que alguna de las dos bloqueadas se libere y por tanto se bloquea también).

     
  • Anonymous

    Anonymous - 2010-05-03

    vaya! pues iframes sí que tenía, sí…. porque en la misma página tenía zonas con distinta información y corriendo en distintos hilos, por lo que lo independicé creando varios servlets que corrieran cada uno un ItsNatDoc.

    No voy a utilizar el explorer, con lo que me quito ese problema, pero veo que en el firefox hay dos parámetros de configuración relacionados.

    network.http.max-persistent-connections-per-proxy;8
    network.http.max-persistent-connections-per-server;6

    Entonces, digamos que no debería superar las 6 conexiones (con la configuración esta) para que ninguna conexión me deje de funcionar? y cada comet supone una conexión, no?

    Si utilizara timers no serían conexiones bloqueantes?

    Gracias!

     
  • Jose M. Arranz Santamaria

    Exacto

    Lo que no entiendo es la necesidad de varios iframes (y varios servlets), nada impide que puedas tener un CometNotifier y varios hilos que lo usan, mientras sincronices adecuadamente el documento cuando accedas al mismo desde los hilos que son hilos "web request", recuerda que en el caso de proceso en el EventListener del CometNotifier no es necesario sincronizar el documento (ya lo hace ItsNat pues de hecho el hilo usado es el "web request" que quedó parado por el CometNotifier). ItsNat sabe los cambios que has hecho al documento (los encola) desde los varios hilos concurrentes y cuando el CometNotifier notifique al cliente enviará todos esos cambios dispares al mismo.

    Si no usas Comet con iframes en MSIE 6-7 también puedes utilizar Comet en Internet Explorer sin problema.

     
  • Jose M. Arranz Santamaria

    Se me olvidaba, como bien dices los timers no tienen problemas con el número de conexiones, si no bloqueas en el servidor las requests claro, para procesos de larga duración puedes utilizar las tareas asíncronas de ItsNat:

    http://www.innowhere.com:8080/itsnat/feashow_servlet?itsnat_doc_name=feashow.main&feature=feashow.core.listeners.asyncTask.default

    Pero por lo que veo te interesa más el Comet de verdad (los timers están bien cuando no hay una exigencia de instantaneidad y los cambios en el servidor ocurren con frecuencia).

     
  • Anonymous

    Anonymous - 2010-05-03

    El conceto del Comet es el que me llevó a conocer el ItsNat, y el que realmente quería probar, aunque como dices, la instantaneidad en mis aplicaciones de prueba tampoco es un MUST, con lo que podría pasarme a utilizar los timers.

    La necesidad de los iframes es por dividir las funcionalidades. Digamos que hay una página web que contiene diversas cajitas (podría ser como una especie de igoogle) y había creado un itsnatdoc para cada caja al que se accedía desde la principal a través del iframe, con lo que al final tenía varios  hilos "web requests" a la vez.

    A ver si puedo echarle una prueba, pero quizás merezca la pena pasarse a utilizar los timers en este caso, y me quito de problemas de tener que aumentar los hilos en el firefox o que puedan expirar.

    Gracias!

     

Log in to post a comment.