Hola.
Os comento la cuestión: tengo una tabla bastante grande (puede llegar a tener más de 50 columnas) y cada una de sus celdas tiene características bastante distintas a las demás: contienen eventos onClick, onMouseOver, algunas tienen imágenes, otras inputs...
Hasta ahora lo que hacía era pedirla por AJAX y meterla en un DIV mediante la propiedad innerHTML. Hasta ahí todo bien.
El problema ha venido cuando la tabla se ha hecho bastante grande y en algunos casos puede llegar a tener 150.000 celdas. Para solventar que se pase todo esto por AJAX cada vez y que el explorador lo tenga que mostrar, lo que estoy intentando hacer es que el servidor devuelva solamente las primeras 100 filas y que, con un botón en la parte inferior, cuando se le haga click que cargue las siguientes 100.
El problema? Que como las celdas son muy complejas desarrollarlas en JS sería muy pesado tanto en tiempo de desarrollo como de ejecución, además de hacer un código más pesado y duplicar el proceso, por lo que necesito meter como sea el HTML que devuelve el servidor.
Una aclaración: necesito que funcione en IE8 sí o sí (en Chrome le he hecho funcionar sin problemas).
He probado a:
- hacer un "innerHTML+=respuestaAjax" tanto al <table> como al <tbody>
- Crear el <tr> y meterle por innerHTML la colección de <td>'s fila por fila
- Parsear el HTML mediante loadXML y load empleando el objeto ActiveX "Microsoft.XMLDOM". En este caso la respuesta es "undefined".
Lo dicho: no me vale ir creando los <td> mediante el DOM porque es muy complejo y la tabla además tiene columnas dinámicas.
Muchas gracias por vuestro tiempo.
Dani.