Menu

Node null

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

    Anonymous - 2010-04-12

    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

     
  • Anonymous

    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… :-(

     
  • Anonymous

    Anonymous - 2010-04-12

    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?

     
  • Jose M. Arranz Santamaria

    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).

     
  • Anonymous

    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!

     
  • Jose M. Arranz Santamaria

    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.

     
  • Jose M. Arranz Santamaria

    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 :)

     
  • Anonymous

    Anonymous - 2010-04-13

    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)

     
  • Jose M. Arranz Santamaria

    ¿Que tal te funciona la versión que te pasé con FireBug? ¿algún problema?

     
  • Jose M. Arranz Santamaria

    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.

     

Log in to post a comment.

MongoDB Logo MongoDB