llevo una temporada liado con otras cosas, pero algún ratillo le saco para intentar sacar una aplicacioncilla web con el itsnat.
Ahora me da todo el rato un error de node = null en esta línea.
1114 function getLenChildNodes(node) { return node.childNodes.length; } // Se redefine en Opera Mobile 8.x
Son otros métodos los que terminan en este, pero mirando al java no veo nada mal, y debugear el javascript me cuesta un rato.
Podría ser algún tipo de condición de carrera en el envío asíncrono del javascript?
intentaré buscar el problema si saco tiempo, pretendía más bien preguntarte cómo buscas tú estos fallos, o si te había pasado y me podías indicar alguna cosilla.
Muchas gracias
JORGE
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2010-04-12
Lo de si habría alguna condición de carrera, lo proponía porque debugeando con el firebug me funciona bien, y sin él no… :-(
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
me sale el error de antes, con este código, cómo se podría buscar dónde está el fallo?
Tengo la impresión de que el error puede estar en que tengo un nodo "content", al que al entrar en el método le borro todo, y entonces le meto todo ese html.
A lo mejor con un ContinuationEvent?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Por desgracia he detectado recientemente que FireBug es INTRUSIVO, es decir añade nodos a tu documento cuando le conviene. He llegado a detectar un nodo insertado entre head y body, tras body, al final de head y al final de body. En qué lugar y el cuando depende de varios factores sobre todo de cuando activas FireBug y qué característica estés usando (y cuando la usas). El propio FireBug no te muestra los nodos que sabe que son suyos.
Voy a sacar un versión hoy mismo o mañana soportando FireBug, el soporte consiste en ignorar los nodos intrusivos en el cálculo de paths de nodos, esto resuelve la inmensa mayoría de los problemas.
Una forma de detectar si el problema es de FireBug es rearrancar FireFox y no activar FireBug y ejecutar tu código, por supuesto otra alternativa es probar tu código con Internet Explorer, Chrome o Safari aunque el código JavaScript generado puede no ser el mismo, si es el caso de un problema de tu programa o un bug del framework lo detectaras en cualquier navegador, si es un problema que solo ocurre en un navegador concreto lo mejor es probar otro.
Te recomiendo que uses lo más posible DOM Inspector que no es intrusivo (que yo sepa).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2010-04-12
Parece que ha funcionado el Dom Inspector… :-)
Es la única pega que le encuentro al ItsNat por ahora ( a la hora de desarrollar) que a veces te surge algo y no sabes por dónde cogerlo, entre la interacción cliente - servidor, etc…
Muchas gracias!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Si haces un balance de los problemas que has tenido, creo recordar que salvo el desconcierto inicial lógico ante una herramienta nueva (lo de no saber como funciona el cacheado) y la mala suerte que tuviste de usar una versión con un fallo importante que apenas estuvo una semana en la web, todos los demás problemas han sido debidos a las malditas EXTENSIONES de los navegadores.
A donde quiero llegar es que teoría no deberías de preouparte por lo que pasa en esa interacción cliente-servidor. De todas formas siempre puedes recurrir a un debugger de JavaScript o al debugger más antiguo:
itsNatDoc.addCodeToSend("alert('lo que sea');");
Lo de las extensiones es un problema que cada vez oirás más y más a medida que las webs se hagan más ricas en comportamiento cliente, en el caso de ItsNat tolera algunas extensiones poco intrusivas (las detecto) y el caso de FireBug porque el programador es un usuario muy especial, afortunadamente la inmensa mayoría de los usuarios del mundo ignoran la existencia de extensiones y no todas las extensiones son intrusivas.
El mecanismo típico de intrusión es meter nodos entre head y body, eso no es problema para ItsNat, el problema está cuando se insertan al final de head y body (caso de FireBug), en el caso de inserción en head afortunadamente tiene un impacto muy bajo porque es raro añadir/quitar dinámicamente al head nodos style o script , en el caso de body es normal añadir nodos al final de body, es el comportamiento por defecto de los modal layers (que se puede cambiar).
A veces con un simple div recubriendo todo se evita el problema las de las extensiones (caso de body) , es decir añadiendo/quitando nodos bajo en div en vez de bajo body (también posible en el caso de modal layers) para evitar que ItsNat se encuentre con "piedras" en forma de nodos inexperados insertados por extensiones.
De todas formas en el caso de FireBug se detectar esa piedra y evitarla por lo que en la versión nueva podrás usar de nuevo FireBug espero que sin problema.
Lo de las extensiones e ItsNat es un ejemplo del precio de la libertad: las extensiones son libres de añadir nodos inexperados y con ItsNat existe la libertad de añadir nodos donde quieras, al final es lógico que en algún punto ambas libertades choquen.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Usa esta snapshot de la futura 0.7.0.6 , soluciona los problemas que introduce FireBug, vuelve a usarlo si quieres, si detectas algo raro que no ocurre cuando FireBug no está activado dímelo pues la solución que aplico es "conservadora" para el FireBug, puedo optar por algo más drástico.
He estado probando jQuery con ItsNat con cosas sencillitas como $(…).hide() y $(…).show('slow') y no he encontrado ningún problema, obviamente el atributo style del elemento usado en el cliente con jQuery estará desincronizado respecto al servidor, pero si eres consciente de eso jQuery puede usarse para este tipo de chorradas visuales (bonitas al principio, molestas cuando las ves mil veces) y obviamente para cosas más sofisticadas en zonas estáticas respecto al servidor.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hola!
llevo una temporada liado con otras cosas, pero algún ratillo le saco para intentar sacar una aplicacioncilla web con el itsnat.
Ahora me da todo el rato un error de node = null en esta línea.
1114 function getLenChildNodes(node) { return node.childNodes.length; } // Se redefine en Opera Mobile 8.x
Son otros métodos los que terminan en este, pero mirando al java no veo nada mal, y debugear el javascript me cuesta un rato.
Podría ser algún tipo de condición de carrera en el envío asíncrono del javascript?
intentaré buscar el problema si saco tiempo, pretendía más bien preguntarte cómo buscas tú estos fallos, o si te había pasado y me podías indicar alguna cosilla.
Muchas gracias
JORGE
Lo de si habría alguna condición de carrera, lo proponía porque debugeando con el firebug me funciona bien, y sin él no… :-(
Por ejemplo,
Unexpected error
itsNatDoc.setInnerHTML2(,"<div class=\"container\"><div class=\"move_items\"><a class=\"prevPage\" id=\"prevArrow\"></a><br><a class=\"verticalbar\" id=\"bar\"><img src=\"${path}/gui/bar.gif\"></a><br><a class=\"nextPage\" id=\"nextArrow\"></a></div><div class=\"scrollable\" id=\"list_container\"><div class=\"items\" id=\"series_items\"></div></div></div>");
itsNatDoc.setAttribute2(["cn_13","cn_14","0,0,2,0",],"src","/resource/298/gui/bar.gif");
itsNatDoc.sendCometTaskEvent("el_17",1,-1);
me sale el error de antes, con este código, cómo se podría buscar dónde está el fallo?
Tengo la impresión de que el error puede estar en que tengo un nodo "content", al que al entrar en el método le borro todo, y entonces le meto todo ese html.
A lo mejor con un ContinuationEvent?
Por desgracia he detectado recientemente que FireBug es INTRUSIVO, es decir añade nodos a tu documento cuando le conviene. He llegado a detectar un nodo insertado entre head y body, tras body, al final de head y al final de body. En qué lugar y el cuando depende de varios factores sobre todo de cuando activas FireBug y qué característica estés usando (y cuando la usas). El propio FireBug no te muestra los nodos que sabe que son suyos.
Voy a sacar un versión hoy mismo o mañana soportando FireBug, el soporte consiste en ignorar los nodos intrusivos en el cálculo de paths de nodos, esto resuelve la inmensa mayoría de los problemas.
Una forma de detectar si el problema es de FireBug es rearrancar FireFox y no activar FireBug y ejecutar tu código, por supuesto otra alternativa es probar tu código con Internet Explorer, Chrome o Safari aunque el código JavaScript generado puede no ser el mismo, si es el caso de un problema de tu programa o un bug del framework lo detectaras en cualquier navegador, si es un problema que solo ocurre en un navegador concreto lo mejor es probar otro.
Te recomiendo que uses lo más posible DOM Inspector que no es intrusivo (que yo sepa).
Parece que ha funcionado el Dom Inspector… :-)
Es la única pega que le encuentro al ItsNat por ahora ( a la hora de desarrollar) que a veces te surge algo y no sabes por dónde cogerlo, entre la interacción cliente - servidor, etc…
Muchas gracias!
Si haces un balance de los problemas que has tenido, creo recordar que salvo el desconcierto inicial lógico ante una herramienta nueva (lo de no saber como funciona el cacheado) y la mala suerte que tuviste de usar una versión con un fallo importante que apenas estuvo una semana en la web, todos los demás problemas han sido debidos a las malditas EXTENSIONES de los navegadores.
A donde quiero llegar es que teoría no deberías de preouparte por lo que pasa en esa interacción cliente-servidor. De todas formas siempre puedes recurrir a un debugger de JavaScript o al debugger más antiguo:
itsNatDoc.addCodeToSend("alert('lo que sea');");
Lo de las extensiones es un problema que cada vez oirás más y más a medida que las webs se hagan más ricas en comportamiento cliente, en el caso de ItsNat tolera algunas extensiones poco intrusivas (las detecto) y el caso de FireBug porque el programador es un usuario muy especial, afortunadamente la inmensa mayoría de los usuarios del mundo ignoran la existencia de extensiones y no todas las extensiones son intrusivas.
El mecanismo típico de intrusión es meter nodos entre head y body, eso no es problema para ItsNat, el problema está cuando se insertan al final de head y body (caso de FireBug), en el caso de inserción en head afortunadamente tiene un impacto muy bajo porque es raro añadir/quitar dinámicamente al head nodos style o script , en el caso de body es normal añadir nodos al final de body, es el comportamiento por defecto de los modal layers (que se puede cambiar).
A veces con un simple div recubriendo todo se evita el problema las de las extensiones (caso de body) , es decir añadiendo/quitando nodos bajo en div en vez de bajo body (también posible en el caso de modal layers) para evitar que ItsNat se encuentre con "piedras" en forma de nodos inexperados insertados por extensiones.
De todas formas en el caso de FireBug se detectar esa piedra y evitarla por lo que en la versión nueva podrás usar de nuevo FireBug espero que sin problema.
Lo de las extensiones e ItsNat es un ejemplo del precio de la libertad: las extensiones son libres de añadir nodos inexperados y con ItsNat existe la libertad de añadir nodos donde quieras, al final es lógico que en algún punto ambas libertades choquen.
Usa esta snapshot de la futura 0.7.0.6 , soluciona los problemas que introduce FireBug, vuelve a usarlo si quieres, si detectas algo raro que no ocurre cuando FireBug no está activado dímelo pues la solución que aplico es "conservadora" para el FireBug, puedo optar por algo más drástico.
http://itsnat.sourceforge.net/tmp/itsnat_0_7_2010_04_12.zip
Voy a estar unos 6 días desconectado (desde mañana) no es que ignore tus consultas :)
Gracias!
la verdad es que sí, casi todos mis problemas han tenido que ver con eso y con algunos malos usos míos..
probaré la versión y ya te doy feedback..
Pásalo bien!! (espero que sean vacaciones..jeje)
¿Que tal te funciona la versión que te pasé con FireBug? ¿algún problema?
He estado probando jQuery con ItsNat con cosas sencillitas como $(…).hide() y $(…).show('slow') y no he encontrado ningún problema, obviamente el atributo style del elemento usado en el cliente con jQuery estará desincronizado respecto al servidor, pero si eres consciente de eso jQuery puede usarse para este tipo de chorradas visuales (bonitas al principio, molestas cuando las ves mil veces) y obviamente para cosas más sofisticadas en zonas estáticas respecto al servidor.