Foros del Web » Programando para Internet » Javascript » Frameworks JS »

responseXML.documentElement no funciona en IE

Estas en el tema de responseXML.documentElement no funciona en IE en el foro de Frameworks JS en Foros del Web. Si uso Cita: objetoXMLHttpRequest.responseXML.documentElement en FireFox, obtiene un objeto element, pero en Internet Explore no funciona, devuelve 'null'. Que puede pasar? Cual es la solucion? ...
  #1 (permalink)  
Antiguo 17/04/2006, 05:50
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
responseXML.documentElement no funciona en IE (replanteo el problema)

Si uso
Cita:
objetoXMLHttpRequest.responseXML.documentElement
en FireFox, obtiene un objeto element, pero en Internet Explore no funciona, devuelve 'null'. Que puede pasar? Cual es la solucion? Gracias
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.

Última edición por oskarL; 18/04/2006 a las 09:24 Razón: Error en el titulo
  #2 (permalink)  
Antiguo 17/04/2006, 16:40
 
Fecha de Ingreso: septiembre-2005
Mensajes: 23
Antigüedad: 18 años, 7 meses
Puntos: 0
Edito: Cachis, leí mal. No he dicho nada
  #3 (permalink)  
Antiguo 17/04/2006, 18:15
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Muestra tu codigo completo, talves tienes algun error a la hora de crear el objeto XMLHttpRequest.. me suena como a q solo creaste el objeto para firefox y no para exploiter.... pero igual y estoy equivocado, asi q mejor seria pusieras el codigo completo..
  #4 (permalink)  
Antiguo 18/04/2006, 01:28
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
Mejor no muestro todo el codigo, porque es demasiado, pero si que pongo la funcion con la que creo el objeto XMLHttpRequest, a ver si hay algun fallo. En principio lo hize para que funcionara con la mayoria de los navegadores, pero igual lo he hecho mal, no se...

Cita:
function objetus() {

var xmlhttp;

if (window.XMLHttpRequest) { // Mozilla, Safari,...
xmlhttp = new XMLHttpRequest();
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}

return xmlhttp;
}

Sinceramente no creo que ese sea el error, porque al hacer estos alerts
Cita:
alert(objetus); //objeto XMLHttpRequest
alert(objetus.responseXML);
alert(objetus.responseXML.documentElement);
En FireFox aparece '[objeto tal]' en los tres, y en Internet Explorer, sale '[objeto]' en los dos primeros, pero en el ultimo pone 'null'. Asi que parece que el objeto XMLHttpRequest esta bien... aunque a saber, jeje
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #5 (permalink)  
Antiguo 18/04/2006, 03:17
Avatar de manolowarr  
Fecha de Ingreso: septiembre-2005
Mensajes: 60
Antigüedad: 18 años, 7 meses
Puntos: 2
Así lo hago yo y me funciona bien


Código:
//####################################################################################
// AJAX manolowarr 2006

var ajax

var http_request

            function newAJAX() {

                http_request = false

                if (window.XMLHttpRequest) { // Mozilla, Safari,...
                    http_request = new XMLHttpRequest()
                    if (http_request.overrideMimeType) {
                        http_request.overrideMimeType('text/xml')
                    }
                }
				else if (window.ActiveXObject) { // IE
                    try {
                        http_request = new ActiveXObject("Msxml2.XMLHTTP")
                    }
					catch (e) {}
                    try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP")
                    }
					catch (e) {}
                }				
                return http_request
            }


//####################################################################################

	var	titulo = ""

	function cargarAJAX( url ){
		titulo = url
		ajax = false
		ajax=new AJAX()
		ajax.onreadystatechange=CargarPag
		ajax.open('GET', url, true)
		ajax.send(null)
	}
//####################################################################################


    function CargarPag() {	

        if (ajax.readyState == 4) {
        if (ajax.status == 200) {		
	
		var xmldoc = ajax.responseText
		
		document.title = "Scripts Para Photoshop - " + titulo
		
	myweb.innerHTML =  xmldoc
		
        }//200		
      }//4
	}//function

//####################################################################################
__________________
----------------------------------------
http://www.photoshop-scripts.com

-
  #6 (permalink)  
Antiguo 18/04/2006, 03:45
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
Claro, pero tu haces un responseText para coger los datos. Yo quiero hacer un responseXML porque lo que recibo es un XML, y quiero usar el DOM del documento
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #7 (permalink)  
Antiguo 18/04/2006, 04:43
Avatar de manolowarr  
Fecha de Ingreso: septiembre-2005
Mensajes: 60
Antigüedad: 18 años, 7 meses
Puntos: 2
Cita:
Iniciado por oskarL
Claro, pero tu haces un responseText para coger los datos. Yo quiero hacer un responseXML porque lo que recibo es un XML, y quiero usar el DOM del documento
Observa estas dos páginas ahí utilizo responseXML , todo este código está hecho por mí

http://www.scriptsparaphotoshop.com/rss.html

http://www.scriptsparaphotoshop.com/rssB.html

Descárgalo y mira el código del archivo: AJAX4.js y AJAX4b.js, lo único que lleva de más es un php para abrir los rss externo al servidor.

Te pongo el código del php y lo demás lo puedes ver descargando las paginas


AJAX4.php
Código:
<?php
//RSS en AJAX manolowarr 2006
header('Content-type: text/xml');

$url=$_GET['id'];

function LeerArchivoEnviarAJAX(){

global $url, $Remoto_Archivo;

$Remoto_Archivo=file_get_contents($url);

echo $Remoto_Archivo;

}

LeerArchivoEnviarAJAX();

?>
__________________
----------------------------------------
http://www.photoshop-scripts.com

-
  #8 (permalink)  
Antiguo 18/04/2006, 09:37
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
Replanteo el problema...

Pues resulta que cogiendo un archivo xml directamente no tengo ningun problema...

Explico un poco lo que estoy haciendo.

Se trata de un script que busca en una base de datos en funcion de lo que se escriba en una caja de texto. Devuelve el resultado de manera interactiva, asi que por eso uso AJAX.

El caso es que la conexion que abro con AJAX es sobre un archivo php, que busca por el criterio de la caja de texto, y devuelve el resultado. Al principio recogia los datos con un responseText directamente, pero ahora que se un poco mas de XML estoy intentando usar su potencia, por eso lo que hago es escribir directamente etiquetas XML de esta manera: (en este archivo se escribe en una pagina una estructura XML)

Código PHP:
    include("config.php");
    mysql_connect($host,$user,$password);
    mysql_select_db($db);
    
        //nom es el contenido de la caja de texto
    if(isset($nom)){
        
            $query="SELECT * FROM referencias WHERE referencia LIKE '$nom%' ORDER BY referencia";
        
    }
    
    $datos.="<?xml version="1.0\" encoding=\"UTF-8\" ?>";
    
$datos.="<referencias>";
    
$rs=mysql_query($query);
    while(
$row=mysql_fetch_array($rs)){
        
$datos.="<referencia>";
        
$datos.="<id>".$row['id']."</id>";
        
$datos.="<nombre>".$row['referencia']."</nombre>";
        
$datos.="<categoria>".$row['categoria']."</categoria>";
        
$datos.="</referencia>";
    }
    
$datos.="</referencias>";
?>
<?php 
echo $datos?>
Utilizando responseXML.documentElement en FireFox, no tuve ningun problema, pero el contenido de esa instruccion en Internet Explorer es 'null'

Mas tarde probe a abrir la conexion de AJAX directamente con un XML, y ese problema ya no se daba.

Como puedo solucionar este problema? ya que en principio necesito abrir una conexion con un php para que me devuelva el XML con los datos apropiados... como puedo hacer esto??

Gracias!!!
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #9 (permalink)  
Antiguo 18/04/2006, 10:24
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading.............



para el responseXML del lado del servidor debes poner las cabeceras correspondientes identificando como un documento XML

Código PHP:
header("Content-Type: text/xml");
echo 
$resultado

connection closed.
__________________

Maborak Technologies
  #10 (permalink)  
Antiguo 19/04/2006, 01:24
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
Gracias MaBoRaK! una muy buena solucion!
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.

Última edición por oskarL; 19/04/2006 a las 03:09
  #11 (permalink)  
Antiguo 11/07/2006, 15:37
 
Fecha de Ingreso: julio-2006
Mensajes: 10
Antigüedad: 17 años, 9 meses
Puntos: 0
De acuerdo Si funciona

Lo mas probable es que tengas problema con tu xml, ya que cuando esa mal hecho el sistema no lo reconoce
aca te muestro un ejemplo en donde

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<INICIO>
<ENCABEZADO>
<ID_SESION>19</ID_SESION>
</ENCABEZADO>
<ENCABEZADO>
<ID_SESION>20</ID_SESION>
</ENCABEZADO>
</INICIO>


var xml = oXML.responseXML.documentElement;
document.write('<table>');
for (i = 0; i < xml.getElementsByTagName('ENCABEZADO').length; i++){
var item = xml.getElementsByTagName('ENCABEZADO')[i];
var id = item.getElementsByTagName('ID_SESION')[0].firstChild.data;
}
  #12 (permalink)  
Antiguo 12/07/2006, 01:29
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
Gracias rocamo, pero el problema esta solucionado desde finales de Abril! jeje
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #13 (permalink)  
Antiguo 10/11/2006, 14:38
 
Fecha de Ingreso: septiembre-2006
Mensajes: 29
Antigüedad: 17 años, 7 meses
Puntos: 0
Pues que a mí tb me haz salvado...todo por un ~%#@ encabezado...
  #14 (permalink)  
Antiguo 12/12/2006, 07:01
Avatar de juank30  
Fecha de Ingreso: julio-2005
Mensajes: 29
Antigüedad: 18 años, 9 meses
Puntos: 0
Se que esta solucionado pero...

Hola según dicen en este foro el problema de trabajar con archivos XML en IE se soluciona con un Header, pero estoy hace unos dias que no puedo hacer correr este codigo en IE, es el mismo problema que se ha tenido desde el comienzo el responseXML.documentElement devuelve null y estoy poniendo la cabecera en el archivo php, aqui les pongo todo el codigo para que lo prueben, por favor diganme donde me equivoco:

Archivo html (books.html):
Código HTML:
<html>
  <head>
    <title>AJAX Foundations: JavaScript and XML</title>
    <script type="text/javascript" src="books.js"></script>
  </head>
  <body onload="process()">
    Server, tell me your favorite books!
    <br/>
    <div id="myDivElement" />
  </body>
</html> 
Su javaScript (books.js):

Código:
var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject(){
  var xmlHttp;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
		xmlHttp = new XMLHttpRequest();
  if (xmlHttp.overrideMimeType) {
		xmlHttp.overrideMimeType('text/xml');
	}
	} else if (window.ActiveXObject) { // IE
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
  }
  return xmlHttp;
}

function process(){
  if (xmlHttp){
    try{
      xmlHttp.open("GET", "respondo.php", true);
      xmlHttp.onreadystatechange = handleRequestStateChange;
      xmlHttp.send(null);
    }
    catch (e){
      alert("Can't connect to server:\n" + e.toString());
    }
  }
}

function handleRequestStateChange(){ 
  if (xmlHttp.readyState == 4){
    if (xmlHttp.status == 200){
      try{
        handleServerResponse();
      }
      catch(e){
        alert("Error reading the response: " + e.toString());
      }
    } 
    else{
      alert("There was a problem retrieving the data:\n" + xmlHttp.statusText);
    }
  }
}

function handleServerResponse(){
  xmlRoot = xmlHttp.responseXML.documentElement;
  titleArray = xmlRoot.getElementsByTagName("title");
  isbnArray = xmlRoot.getElementsByTagName("isbn");
  var html = "";  
  for (var i=0; i<titleArray.length; i++)
    html += titleArray.item(i).firstChild.data + ", " + isbnArray.item(i).firstChild.data + "<br/>";
  myDiv = document.getElementById("myDivElement");
  myDiv.innerHTML = "Server says: <br />" + html;
}
Y el archivo .php que responde (respondo.php):

Código PHP:
<?
header
("Content-Type: text/xml"); 

echo 
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
echo 
"<response>";
echo 
"  <books>";
echo 
"    <book>";
echo 
"      <title>";
echo 
"        Building Reponsive Web Applications with AJAX and PHP";
echo 
"      </title>";
echo 
"      <isbn>";
echo 
"        1-904811-82-5";
echo 
"      </isbn>";
echo 
"    </book>";
echo 
"    <book>";
echo 
"         <title>";
echo 
"        Beginning PHP 5 and MySQL E-Commerce: From Novice to Professional";
echo 
"      </title>";
echo 
"      <isbn>";
echo 
"        1-59059-392-8";
echo 
"      </isbn>";
echo 
"    </book>";
echo 
"  </books>";
echo 
" </response>";
?>
Muchas Gracias.
__________________
.:Ju@nK:.
  #15 (permalink)  
Antiguo 11/03/2008, 10:13
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: responseXML.documentElement no funciona en IE

Buenas, resucito este tema porque no encuentro solución y aquí por lo menos está el problema enfocado.

La cosa es que he probado en Safari para windows, Netscape 9, Opera 9 y Firefox 2.0.0.12 y funciona correctamente, pero en IE7 no :(

Os pongo el codigo a ver que opinais:

JS-> Creacion del objeto XML (funciona):
Código PHP:
function xmlobj(){
    if (
window.XMLHttpRequest) return new XMLHttpRequest();
    else if (
window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
    else 
alert('No se pudo crear el objeto XML');
    } 
JS -> Llamando al archivo (en rojo donde peta en IE)
Código PHP:
function mifuncion(id) {
    
cont document.getElementById('micontenedor');
    
cutChilds(cont); // Limpiar primero
    
xo xmlobj();
    
xo.open('GET''xml/xml_miarchivo.php?id=' id);
    
xo.onreadystatechange = function() {
      if (
xo.readyState == 4) {
      [
COLOR="Red"]var obj  xo.responseXML.documentElement;[/COLOR]
      if (
obj.getElementsByTagName('individuo').length 0) {
        for (
i=0i<obj.getElementsByTagName('individuo').lengthi++) {
          
tr document.createElement('tr');
          
td document.createElement('td');
          
td.appendChild(document.createTextNode(itm.getElementsByTagName('id')[0].firstChild.data));
          
tr.appendChild(td);
          
td document.createElement('td');
          
td.appendChild(document.createTextNode(itm.getElementsByTagName('nombre')[0].firstChild.data));
          
tr.appendChild(td);
          
cont.appendChild(tr);
          }
        }
      }
    }
    
xo.send('');
        } 
PHP -> Creacion del XML
Código PHP:
<?php
require "session.php";
require 
"config.php";
require 
"funciones.php";
header ("Content-type: text/xml; charset=ISO-8859-1");
$id intval($_GET['id']);
if (
$id == 0) die("Datos de entrada no validos");

echo 
"\n<respuesta>";

$sql "SELECT * FROM mitabla m WHERE id=$id"

$q mysql_query($sql) or die("\n\t<error>ERROR DE MySQL!!</error>\n</respuesta>");
$f mysql_num_fields($q);
if (
mysql_num_rows($q) == 0) echo "\n\t<error>No se devolvieron resultados</error>";
else while (
$a mysql_fetch_array($q)) {
    
$telefono $a['C_tel'];
    if (!
$a['C_tel']) $telefono " ";
    
$email $a['C_email'];
    if (!
$a['C_email']) $email " ";
    echo 
"\n\t<individuo>";
    echo 
"\n\t\t<id>{$a['id']}</id>";
    echo 
"\n\t\t<nombre>{$a['Nombre']}</nombre>";
    echo 
"\n\t</individuo>";
    }
echo 
"\n</respuesta>";
?>
JS -> Bonus, funcion para eliminar todos los nodos hijo
Código PHP:
function cutChilds(node) {
    if (
node.hasChildNodes()) while (node.childNodes.length >= 1node.removeChild(node.firstChild);
    } 
Lo del charset ya lo he probado en utf8 y nada. Encima se ven mal algunos caracteres porque la codificacion del HTML es ISO

Última edición por mgusdl; 31/03/2008 a las 02:04 Razón: cambio etiquetas de codigo
  #16 (permalink)  
Antiguo 11/03/2008, 10:23
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: responseXML.documentElement no funciona en IE

loading...........


Bueno:
  1. No olvides que los nodos que contengan caracteres especiales debes ponerlo dentro de un CDATA <nodoalgo><![CDATA[José iñahuasicuchidrill]]></nodoalgo>
  2. No es necesario xo.responseXML.documentElement; basta con xo.responseXML;
  3. No uses itm.getElementsByTagName('nombre')[0].firstChild.data usa itm.getElementsByTagName('nombre')[0].firstChild.nodeValue


Suerte :D


connection closed.
__________________

Maborak Technologies
  #17 (permalink)  
Antiguo 11/03/2008, 10:37
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: responseXML.documentElement no funciona en IE

Ole! Muchas gracias por tu respuesta.

He cambiado estas 3 cosas que comentas en todas las funciones (más largas por contener más campos) y lo mismo, sigue funcionando en FF, pero en IE... :
Cita:
Line: L
Character: C
Code: 0
Error Message: El objeto no acepta esta propiedad o método
URL: http://servidor/intranet/
Encima los mensajes de linea y caracter del IE sirven para lo mismo que el dinero en la Luna

Aun así muchas gracias por iluminarme en otros aspectos
  #18 (permalink)  
Antiguo 11/03/2008, 10:51
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: responseXML.documentElement no funciona en IE

Vale, haciendo debug (mediante intercalacion de alerts) el problema es otro, en la propiedad length :S

Investigaré esto un poco antes de preguntar de nuevo
  #19 (permalink)  
Antiguo 11/03/2008, 10:52
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: responseXML.documentElement no funciona en IE

loading............

Puedes crear el XML " A MANO" y pegarlo aca? que no te genere con la consulta SQL, crealo a mano.
O bien pega el XML que devuelve tu consulta SQL.

connection closed.
__________________

Maborak Technologies
  #20 (permalink)  
Antiguo 11/03/2008, 10:53
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: responseXML.documentElement no funciona en IE

loading............

Oe pero si te falta poner la cabecera XML.

Código PHP:
<?php
header 
("Content-type: text/xml; charset=ISO-8859-1");
$id intval($_GET['id']);
if (
$id == 0) die("Datos de entrada no validos");
echo 
"<?xml version='1.0' ?>\n";
echo 
"\n<respuesta>";
?>
connection closed.
__________________

Maborak Technologies
  #21 (permalink)  
Antiguo 11/03/2008, 11:08
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: responseXML.documentElement no funciona en IE

loading..............


obj.getElementsByTagName('individuo').length <-- cuanto te suelta? undefined?

connection closed.
__________________

Maborak Technologies
  #22 (permalink)  
Antiguo 11/03/2008, 11:09
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: responseXML.documentElement no funciona en IE

El XML que genera contiene datos privados, con lo que no puedo copiartelo alegremente aquí ya que violaría la LOPD (y más tratandose de una base de datos registrada). Si uso AJAX es porque la aplicacion no es accesible desde el exterior.

Poniendo la cabecera que indicas la cosa no cambia, no obstante la dejaré porque es lo correcto.

Además mi problema ahora viene al intentar obtener el numero de hijos del nodo, que en todos los navegadores me da un valor bueno y en IE me da 0.
He probado con todas estas variantes, si bien sólo es correcta l a primera:

Código:
alert(obj.getElementsByTagName('nombrenodo').length);
Código:
alert(obj.getElementsByTagName('nombrenodo')[0].length);
Código:
alert(obj.getElementsByTagName('nombrenodo').childNodes.length);
Código:
alert(obj.getElementsByTagName('nombrenodo')[0].childNodes.length);

Última edición por mgusdl; 11/03/2008 a las 11:12 Razón: no habia visto la respuesta anterior
  #23 (permalink)  
Antiguo 11/03/2008, 12:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: responseXML.documentElement no funciona en IE

La opción tercera no te da el valor correcto?

Saludos.
  #24 (permalink)  
Antiguo 12/03/2008, 01:40
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: responseXML.documentElement no funciona en IE

Cita:
Iniciado por GatorV Ver Mensaje
La opción tercera no te da el valor correcto?

Saludos.
No, de hecho la opción 3 da error, según FireBug (http://www.getfirebug.com):
obj.getElementsByTagName("nodo").childNodes has no properties
  #25 (permalink)  
Antiguo 12/03/2008, 02:53
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: responseXML.documentElement no funciona en IE

Bueno, he encontrado el origen de mi problema.
Revisando el funcionamiento con el debugBar (www.debugbar.com) en IE no recibo el xml completo (alrededor de 30KB cuando no se establecen criterios de busqueda en la lista), mientras que en el resto de navegadores si lo cargan.
Aqui una captura donde se ve como el XML no carga completo:



Existe alguna forma de aumentar el buffer de lectura en IE mediante JavaScript??

Última edición por mgusdl; 12/03/2008 a las 03:03 Razón: para agregar la captura
  #26 (permalink)  
Antiguo 12/03/2008, 10:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: responseXML.documentElement no funciona en IE

Es muy raro que no reciba todo el documento, no me he encontrado con ese problema y estuve buscando en Google y no hay mucha información al respecto.

Creo lo mejor que puedes hacer es ir haciendo varios requests poco a poco...
  #27 (permalink)  
Antiguo 12/03/2008, 11:25
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: responseXML.documentElement no funciona en IE

Cita:
Iniciado por GatorV Ver Mensaje
Es muy raro que no reciba todo el documento, no me he encontrado con ese problema y estuve buscando en Google y no hay mucha información al respecto.

Creo lo mejor que puedes hacer es ir haciendo varios requests poco a poco...
Si, eso lo he pensado, pero... A la hora de aplicar filtros, que es el principal motivo para cargar la informacion de manera asíncrona, la cosa se complica tela.

En otras partes utilizo AJAX para activar/desactivar bloqueos sin recargar toda la página y no hay problema, pero en estos casos lo importante es la petición y la respuesta un "OK" o un mensaje parae el manejo de errores en la aplicación. En los escenarios de peso funciona correctamente cuando al pasar un filtro devuelve 4 o 5 filas (con 8, 10 campos cada fila), más de eso casca.

Lo de la carga de XML "grandes" debe ser algo conocido cuando la gente de dthmlx lo pone como "feature": Ready to use solution for big datasets
http://dhtmlx.com/docs/products/dhtmlxGrid/

Última edición por mgusdl; 12/03/2008 a las 11:25 Razón: ida de la olla
  #28 (permalink)  
Antiguo 12/03/2008, 12:32
(Desactivado)
 
Fecha de Ingreso: enero-2008
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: responseXML.documentElement no funciona en IE

Por que no usas xajax mejor para???... es mucho mas sencillo y rapido... :si

Última edición por GatorV; 12/03/2008 a las 15:31
  #29 (permalink)  
Antiguo 12/03/2008, 15:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: responseXML.documentElement no funciona en IE

Mmmm, porque no pruebas el script en otra maquina?, checa si te sirve y así podrás ver si el problema es tu IE local o en general el Internet Explorer...

Saludos.
  #30 (permalink)  
Antiguo 13/03/2008, 05:46
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: responseXML.documentElement no funciona en IE

No, ya he probado en un par de máquinas, incluso con Vista. :(

Al final he prescindido de la carga de datos mediante AJAX
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:02.